分页查询思路

1.前端发送的请求参数(page,pageSize)

        page:页码

        pageSize:每页记录数

2.明确最终展示效果

根据每页展示记录数,以及总记录数,两者的商向上取整就是页码

后端需要响应给前端的数据有两个:

        数据列表:即传统sql语句中带Limit的,limit的参数有两个,起始索引,每页展示记录数

        总记录数:聚合函数的count(*)可以查询总记录数

3.后端控制器controller层中接收请求,返回值响应给前端

        定义一个方法,参数有两个,一个是页码,一个是每页记录数.如果前端没有传参数给我们,这两个参数还需要一个默认值,这里需要用到@RequestParam注解,这个注解中有一个属性,defaultValue=" ",其中的值可以设置成我们想要的默认值

        因为后端响应给前端的数据有两个,所以还需要在pojo层中定义一个pageBean实体类,把响应给前端的两个数据封装到pageBean对象中,在把pageBean对象封装到result中,再响应给前端

4.数据层service,执行逻辑代码

        定义一个方法,controller层调用这个方法,并传递两个参数,page,pageSize,这个方法的返回值是一个pageBean对象

        这里需要注意的是page这个参数并不能直接使用,因为真正执行的sql语句中,limit中需要两个值,一个是起始索引,一个是每页展示记录数.起始索引的值=(页码-1)*每页展示记录数

        调用mapper层中的两个方法,一个方法的返回值是total:总记录数,一个方法的返回值是数据列表:一个List集合,这个集合的泛型是具体要查询的pojo类.最后把这两个方法的返回值封装到pageBean对象中,再返回给controller层

5.mapper层,数据访问层,操作myBatis数据库

        定义两个方法,一个是查询总记录数,一个是查询数据列表

=====================================================================

简化开发:pageHelper插件

1.pom文件中引入坐标

2.在service层中

        这个方法的参数还是一样,但是方法体中不需要再调用两个mapper层的方法,只需要正常的执行我们的查询逻辑,selectAll

        pageHelper调用一个方法startPage,设置分页参数.这个方法的形参就是controller层传过来的两个形参,page,pageSize

        调用Mapper层中的方法,返回值是一个List集合,再把这个集合对象强转成Page类型

        最后这个方法的返回值还是pageBean对象,pageBean对象的两个属性:总记录数=p.getTotal(),数据列表=p.getResult()

3.mapper层

        只需要执行一个方法,selectAll

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值