问题描述
近期写项目中用到Mabits Plus的PageHelper插件,在测试时发现分页失效了,特记录下此过程。
在这里可以看出,我总共就两条记录,pageNum到第三页的时候,应该是没有数据的,说明还是停留在第一页
代码实现
项目依赖 pom.xml
<!--mybatis-plus生成文件插件-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.2</version>
</dependency>
application.yml 配置
#mybatis Plus分页插件
pagehelper:
support-methods-arguments: true
params: count=countSql
reasonable: false
helper-dialect: mysql
page-size-zero: true
查询方法
后面看到了日志的信息
执行的sql 没有分页limit ??
找了好久终于找到解决方案了,如果对此有疑问,建议大家debug走一次源码
解决办法
- application.yml 中修改pagehelper.reasonable为true
#mybatis 分页插件 pagehelper: support-methods-arguments: true params: count=countSql reasonable: true helper-dialect: mysql page-size-zero: true
失效原因:
这是pageHelper里面自带的一个功能,叫做reasonable分页参数合理化,3.3.0以上版本可用,默认是false。
启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页; 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据。