并发情况下,mybatis-plus分页在sql里面拼接了两个limit问题

报错日志

并发情况下,报错日志
并不属于自己拼接sql问题,自己的代码如下:
在这里插入图片描述
网上查了很多都是说,mybatis-plus插件PageHelper分页时候采用的ThreadLocal,其它线程用到了上一个查询的语句然后拼接上limit报错;
因为是偶发情况,自己本地debug并没有复现,经过一通查询网上解决办法,有说每次分页查询完把PageHelper.clear掉,但是自己使用的PageHelper并没有clear方法
在这里插入图片描述
最终没有解决该插件PageHelper带来的拼接两个limit的好办法,
只能不用PageHelper来做分页处理,自己写查询结果,反正把参数封装到CustomizePage里面,如果你刚好遇到我的问题或者有这个处理经验,欢迎留言!向大佬学习!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Mybatis-Plus提供了一个Page对象用于分页查询,其中包括当前页码、每页显示数量、总记录数等信息。在进行分页查询时,我们需要先查询总记录数,然后再查询对应的数据页。 Mybatis-Plus已经为我们提供了方便的方法来进行分页查询,我们只需要在mapper接口中定义一个带有Page参数的查询方法即可。例如: ```java List<User> selectUserList(Page<User> page); ``` 在查询中,我们需要使用Mybatis-Plus提供的Page对象来进行分页查询。在查询之前,我们需要先设置Page对象的当前页码和每页显示数量: ```java Page<User> page = new Page<>(1, 10); // 查询第1页,每页显示10条记录 ``` 接下来,我们需要在查询之前先查询出总记录数,这个过程可以使用Mybatis-Plus提供的selectCount方法: ```java long total = userMapper.selectCount(null); // 查询总记录数 page.setTotal(total); // 设置总记录数 ``` 然后,我们就可以使用Page对象进行分页查询了: ```java List<User> userList = userMapper.selectUserList(page); page.setRecords(userList); // 设置数据页 ``` 在进行分页查询时,Mybatis-Plus会自动拼接分页SQL语句,并将分页参数传递给SQL语句。例如,在MySQL中,分页SQL语句可以如下所示: ```sql SELECT * FROM user LIMIT 0, 10; ``` 其中,0表示起始记录数,10表示每页显示数量。Mybatis-Plus会根据当前页码和每页显示数量自动计算出起始记录数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值