PageHelper使用的小误区:查询出的结果集赋值给另外一个结果集后,结果集总数和分页总页数不正确(已解决)

文章讲述了在使用PageHelper进行MyBatis分页查询时遇到的问题,即查询后的total值随pageSize变化而变化,而非应保持为总记录数。作者发现并修正了问题,正确的做法是根据查询结果集创建PageInfo对象,以确保total和pages的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PageHelper 是一款基于 MyBatis 的分页插件,我们只需要在调用 mapper 之前调用 startPage() 方法,传入相应的参数,在调用之后将查询结果封装进 PageInfo 对象中,就能按我们的需要进行分页查询。

今天在使用的时候发现了一个小误区,进行记录一下,避免下次再犯错误

1、正常使用,首先在调用查询的方法之前,使用

PageHelper.startPage(pageNumber,pageSize);

  2、然后对获取到的集合分别copy到另外一个集合中

 3、最后创建一个PageInfo对象获取到pageInfo

        以下是pageInfo的结构

 

 4、这时其实是有问题的

        上面的total应该是查询到所有的数量,而不是某一页,pages应该是总页数;

        当我改变查询的每页数量pageSize时,总数total居然变了,总页数pages还是为一

5、发现问题

经过查找,发现原因

 

 这两处不一致导致

6、做出修正

 利用查询结果集accountList,创建出分页对象accountPageInfo,此时total和pages是正确的

 再将accountPageInfo中所需要的参数赋值给我们所需要的分页集PageInfo<Statistic> pageInfo

 中即可

 

再测试,结果正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值