解决PageHelper的pageNum失效问题

功能描述

SpringBoot (version2.x) ,实现按照条件分页查询用户信息

代码实现

项目依赖 pom.xml

1
2
3
4
5
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>

application.yml 配置

1
2
3
4
5
6
7
8
#分页插件
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
#pageSize=0 返回所有
pageSizeZero: true

查询用户方法

1
2
3
4
5
6
7
public BasePageResult<List<UserInfoVo>> queryUserInfoListByPage(UserInfoRequestVo parm) {
BasePageResult<List<UserInfoVo>> pageResult = new BasePageResult<>();
PageHelper.startPage(parm.getPage(), parm.getPage_size());
List<UserInfoVo> userList = userMapper.queryUserInfoByCondition(parm.getName().trim());
PageInfo<UserInfoVo> pageInfo = new PageInfo<>(userList);
……
return pageResult;

方法测试

查询第一页,每页10条,返回的是10条记录;查询第二页,每页10条,返回的是10条记录,查询第三页,每页10条记录,返回的是10条记录;现象是无论page为多少,返回的都是10条记录,而且是一模一样的10条记录 数据说明:数据库里边符合条件的记录只有10条。

sql执行现象

分页sql 只有一个分页参数: limit ?

正常情况下分页参数(pageNum !=1)limit ?,?

问题排查与分析

检查自己写的方法中分页参数是不是被处理过,并没有!debug进PageHelper 代码,发现了问题,pageNum一开始为3,后面还会变为1 !!!代码知道答案:

Page 初始化及执行分页查询时都会用到一个参数: reasonable, 顾名思义是 合理化,代码中也有注释说是分页合理化,这个参数的值默认为false。如下图所示:当设置了true,并且当前查询的页码 大于 总页数时,就会进行分页的合理化,会把当前查询的页码重置为总页数,也就是说查询了最后一页的pageSize 记录。
代码执行到下图中的setTotal()方法,total = 10, pages = 1, reasonable= true && 3> 1 ==> pageNum = pages =1 ,这就可以说明 当pageNum大于1时,查询结果会一直是库里边的10条记录;

reasonable 是在哪挖的坑呢?

是application.yml中有一项是 pagehelper.reasonable =true ,具体大家可以往上看[application.yml 配置] 部分。

当然了pageHelper 官网也有说明:https://github.com/pagehelper/Mybatis-PageHelper

问题解决

application.yml 中修改pagehelper.reasonable为false通过初始化PagHelper时参数reasonable为false,

 

posted on   书梦一生  阅读(1352)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示