微服务项目之电商--15.后台分页查询及新增品牌业务添加

目录

 

一、后台提供查询接口

1.数据库表

2.实体类

 3、mapper

4.controller

分页业务与通用mapper的使用

前端数据接收

二、新增品牌

1.controller

2、service

 3、mapper(新增中间表)

 4.新增事务@Transactional


一、后台提供查询接口

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版权协议,转载请附上原文出处链接和本声明。