快速知道PageHelper对你的Sql语句干了什么

起因:

     用PageHelper分页插件写页面查询时发现一个问题
     
     此时我想查询任意页的任意一条数据只有当前页为1时才能做到

     而在后面的页数时,是无法查询到前面页数的数据的
     
     图: 

在这个页面查询

分析:

检索分析PageHelper的结果都是手撕源码 大概就是方法重载 多线程 反射 拦截之类的此时的我水平有限,看起来不是很容易。
而且我只是想知道PageHelper对我的sql语句 做了什么就够了,所以把分析结果分享给和我一样目的的人。

使用PageHelper给参数的格式

  PageHelper.startPage(currentPage,pageSize);

试试在第4页查第1页的数据,PageSize为10
在这里插入图片描述

于是我们知道了PageHelper只是在sql语句后面加了 limit ?,?
(第一个?为起始索引,第二个为要查多少条。破案)
此时我们有70条数据,每页10条,currentPage=4,pageSize=10时,?的值分别为30和10。
总结一下写个小公式:
原sql+limit+(currentPage-1)*pageSize=PageHelper.startPage
(currentPage,pageSize)+执行sql

解决办法:

每次查询前把currentPage改为1。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值