【mybatis】PageHelper分页失效原因

在项目是使用PageHelper做分页的时候,设置的起始页和每页显示条数总是不起作用。

后来到PageHelper作者的GitHub主页才发现原因是PageHelper.startPage所放在程序的位置的原因:

” 在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。“

//分页插件
PageHelper.startPage(getPageNo(request), getPageSize(request), getOrderBy(request));
//第一条查询语句
String group  = rulingService.findUserGroup(request.getParameter("dingUserId"));
//第二条查询语句
List<RulingPo> rulings = rulingService.findRuling(ruling,gropus);

我本来是想分页第二条的查询语句,这样写的结果就是分页使用在了第一条查询语句,调换位置即可。

因为PageHelper方法使用了静态的ThreadLocal参数,分页参数和线程是绑定的。
只要你可以保证在PageHelper方法调用后紧跟 MyBatis 查询方法,这就是安全的。因为PageHelper在finally代码段中自动清除了ThreadLocal存储的对象。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值