目录
一、后台提供查询接口
1.数据库表
这里需要注意的是,品牌和商品分类之间是多对多关系。因此我们有一张中间表,来维护两者间关系:
但是,你可能会发现,这张表中并没有设置外键约束,似乎与数据库的设计范式不符。为什么这么做?
外键会严重影响数据库读写的效率
数据删除时会比较麻烦
在电商行业,性能是非常重要的。我们宁可在代码中通过逻辑来维护表关系,也不设置外键。
2.实体类
在ly-item-interface项目下
3、mapper
通用mapper来简化开发:
在前端请求,需要添加item
4.controller
编写controller先思考四个问题,这次没有前端代码,需要我们自己来设定
请求方式:查询,肯定是Get
请求路径:分页查询,/brand/page
请求参数:根据我们刚才编写的页面,有分页功能,有排序功能,有搜索过滤功能,因此至少要有5个参数:
page:当前页,int
rows:每页大小,int
sortBy:排序字段,String
desc:是否为降序,boolean
key:搜索关键词,String
响应结果:分页结果一般至少需要两个数据
total:总条数
items:当前页数据
totalPage:有些还需要总页数
这里我们封装一个类,来表示分页结果:
接下来,我们编写Controller
分页业务与通用mapper的使用
分页插件与通用mapper一起使用 ,在之前指定分页开始以及数量,后面再查询数据库的时候自动添加limit
进行查询过滤
排序
如果没空返回空
返回页面数据
打印sql日志
前端数据接收
进度条的控制
查询,出现404错误
当key值修改之后,将页码重置为1
二、新增品牌
品牌的选择采取三级联动,一级一级往下选择
1.controller
还是一样,先分析四个内容:
请求方式:刚才看到了是POST
请求路径:/brand
请求参数:brand对象,外加商品分类的id数组cids
返回值:无
2、service
3、mapper(新增中间表)
4.新增事务@Transactional
它也可以保证数据的一致性。
页面测试
版权声明:本文为qq_37909508原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。