java 查询后 jsonobject key 排序_商品品牌业务之后台Java代码的编写
今天是刘小爱自学Java的第146天。
感谢你的观看,谢谢你。
学习计划安排如下:
- 昨天实现了前端页面的编写以及发送请求,今天关于异步请求工具axios的简单说明。
- 关于商品品牌,后台代码的完整编写。
- 两个重要知识点:分页助手插件的使用,通用mapper高阶查询的使用。
一、异步请求工具axios
我们以前使用的是jQuery发送ajax请求,但是在Vue中还要引入jQuery不太方便。
Vue官方推荐的ajax请求框架叫做:axios
axios支持Http的所有7种请求方式,并且有对应的方法如:Get、POST与其对应。
另外这些方法最终返回的是一个Promise,对异步调用进行封装。
因此可以用.then() 来接收成功时回调,.catch()完成失败时回调,也就是我们昨天的代码编写。
但是昨天写的代码很难看出来是使用的axios,因为其有配置让其使用更简单了。
axios的配置
①使用axios发送请求
prototyte,原型的意思,有什么作用呢?
就相当于给Vue这个类增加了一个$http方法,对应的就是axios,昨天发送请求时使用的this.$http其实就相当于这里的axios。
本来呢如果要使用axios,需要先引入axios,再使用axios调用get方法即可发送get请求。
做了该配置后,就不用引入axios库了,直接调用vue的$http方法即可。
②基础请求路径
直接引用config.js文件中的url即可,也就是网关对应的域名+路由,最先开始就说明过。
二、后台代码编写
个人的编写代码思路:
首先确定对应实体类,其次确定请求参数、请求路径和返回值,最后Java三层代码编写。
1实体类和数据表
数据库中对应的数据表为tb_brand,编写实体类Brand和其一一对应。
2返回值数据
编写一个分页数据实体类,在其它业务中若是需要分页数据也可以使用这个类。
所以将其存放到lxa-common微服务中,其它微服务要用这个直接引用即可。
分页数据包括了:分页总条数,总页数以及当前页数据数。
这个items也就是我们通过数据库查询到的Brand集合。
3Controller层
该层接受请求和响应处理后的数据,其最重要的也就是请求路径和请求参数。
通过浏览器F12可以查看到发送的请求路径以及请求参数。
①关于请求路径
注解@RequestMapping和@GetMapping确定其请求路径,当然全路径中还包括网关对应的域名以及配置的路由。
②关于请求参数
一共有5个参数,逐一说明:
- page:当前页码数,默认设定为第1页。
- rows:每页展示多少行数据?默认设定为5行。
- sortBy:根据什么参数排序,上图中就是根据id排序,该参数可以没有。
- key:这个是前端页面搜索框中输入的数据,根据key模糊查询。
- desc:排序规则,如果是true,降序排序;如果是false,升序排序。
defaultValue设定默认值,required=false表示该参数可以没有,如果不写的话默认为true,必须要有该参数才行。
4Service层和Mapper层
因为是单表查询,所以使用通用mapper插件即可,mapper层代码超简单就不说明了。
①分页助手的使用
PageHelper是Mybatis的一个分页插件,其使用起来非常的方便。
调用startPage()方法开启分页助手的使用,参数为当前页码数和每页的行数。
在⑤中创建一个PageInfo对象,其和分页相关的数据都可以用对应的get方法获取。
②根据key值模糊查询
我们在搜索框中输入的数据为key:
- key值要么是品牌名name包含的值。
- key值要么就是品牌首字母letter。
③排序
关于通用mapper的使用,第132天有说明。
用一个三元表达式来说明是升序还是降序,一定要注意要留有空格,具体看图中说明。
④查询结果
如果查询结果为空,自定义一个异常报错,关于自定义异常后续专门写一篇文章额外说明,emm……具体看情况吧。
三、前端页面接受请求
通过浏览器F12查看响应到的数据。
1响应数据渲染
因为我们在前端代码中打印了响应的数据,也就是consol.log(resp)这段代码。
在浏览器中可以查看到具体的响应数据。
我们可以发现,数据主要存储在data中:
- items即为响应的每行数据,因为设置的rows值为5,所以这里items大小也就是为5。
- total即总记录数,数据库中一共查到了164条品牌数据。
- totalPage即总页数,因为我们这里没有编写对应的业务,所以为null。
将响应的数据赋值给前端vue中对应的值即可,其中关于loading再次做一个说明:
- loading为true,前端页面中有一条不断加载的线来表示数据正在加载中。
- loading为为false,不再显示那条线。
2做一个测试
在管理页面中,选择我的品牌管理,向服务器发送请求获取响应数据,并完成数据渲染:
页面加载后的结果就是如上图所示,这是我调到了第2页后的数据。
由于vue组件的使用,所以自行实现了分页功能,不用我们自己以前那样一一对应渲染了。
其中关于图片的业务还未处理,数据库中有的也没有图片数据,所以没有显示。
最后
行有不得反求诸己,我是刘小爱。
白天上班晚上学习,和Java同岁,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
java 查询后 jsonobject key 排序_商品品牌业务之后台Java代码的编写相关推荐
- antd table排序 vue_商品品牌业务之Vue编写前端页面
今天是刘小爱自学Java的第145天. 感谢你的观看,谢谢你. 学习计划安排如下: 打算从前端页面到后台服务器代码完整地写一遍,但显然我高估了自己的实力,几个小时的时间根本不够用. 并且因为教程和vu ...
- 5.商品分类查询功能_商品品牌分页查询功能
知识点总结 1.功能:查询全部一级分类商品: 分类表:tb_category 字段: id name parent_id(父级分类) is_parent(是否是一级分类) sort(排序指数,越小越靠 ...
- java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序
一般情况下,自己动手写一个简单排序程序还是没有问题的,但是你能保证写出来的排序程序的时间复杂度吗?你能保证程序的正确性吗,鲁棒性呢,还有程序结构的清晰性,可维护性.......综上所述,学习一下排序接 ...
- [转载] java中对数组进行排序_如何在Java中对数组排序
参考链接: Java中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...
- java中对数组进行排序_如何在Java中对数组排序
java中对数组进行排序 Java Array is like a container that can hold a fixed number of the same type of items, ...
- java内存 phd文件抓取_您可以从IBM PHD Java堆转储中提取字符串的值吗?
我有一个来自IBM jvm的PHD格式堆转储,我希望检查一些字符串的值.使用Sun JVM的二进制hprof转储,这是可能的,但是我无法从IBM转储中恢复此信息. 我试过了: >具有IBM DT ...
- java蓝桥杯加法变乘法_蓝桥杯-加法变乘法-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- java查询历史记录的思路_JavaWeb之商品查看后历史记录代码实现
JavaWeb之商品查看后历史记录代码实现全过程解析. 历史记录思路图: 假设已经访问了商品 :1-2-3 那么历史记录就是1-2-3,如果访问了商品8,那么历史记录就是:8-1-2-3,如果再次访问 ...
- c++ 弧形面如何逆时针排序_这8种常见的Java排序算法,学算法必看!
在互联网的大趋势下,数据结构和算法知识,都扮演着重要的角色. 在面试中和实际工作中也是经常遇到和使用到的. 为了让大家了解java中的算法及其代码实现,小编整理出了以下常用的 8 种: 01 直接插入 ...
最新文章
- Swift 烧脑体操(二) - 函数的参数
- 彭博社称飞书被要求下架一个月、Zoom推出5.0版日活超3亿、GoogleDuo全面转向AV1等|Decode the Week...
- SAP透明工厂和弹性制造的原型mockup - SAP 工业 4.0 的一个尝试
- vs code html table,vs Code 快速生成代码
- 中文格式_常见中文编码格式
- 初中参观机器人博物馆的作文_展馆导览机器人好不好用?小笨展馆机器人案例...
- phpcmsV9 QQ登录问题分析 - 踩坑篇
- 转自:拜小白教你OpenCV3.2.0+VS2017开发环境配置
- LGD模型开发细节|全网首发
- 下载Eclipse IDE
- 三十二个vbs整蛊代码,好玩到没朋友
- python自动化办公手册之python操作PPT
- 人物故事 | 回顾美人建筑师,致世界建筑日
- 络达1562系统深度睡眠后RTC唤醒应用
- python实现图形旋转_图像随机旋转及坐标进行旋转原理及Python实现
- 2018蓝桥杯第几个幸运数(C语言)
- 谈谈CANopen协议的机制
- 兼职币圈代言人?特斯拉CEO:加密货币是我的安全词
- CA证书目的和详细演化过程
- redhat7安装yum