前言
本文介绍的是MyBatis 分页插件 PageHelper,如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。 官方文档:https://pagehelper.github.io/ 项目地址:https://github.com/pagehelper/Mybatis-PageHelper
使用方法
导入依赖
在中央仓库sonatype中搜索 pageHelper ,找到 pagehelper-spring-boot-starter 可以自选版本,选择你所使用的依赖管理工具对应的依赖坐标,例如我用的依赖管理工具是Maven,那我就选择对应Maven的依赖坐标。 添加pagehelper-spring-boot-starter 的Maven依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
添加该依赖之后无需再添加MyBatis的依赖,因为该依赖默认依赖了MyBatis:
编写配置文件
使用yaml格式:
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
使用properties格式:
# 指定分页插件的方言
pagehelper.helper-dialect=mysql
# 分页合理化
pagehelper.reasonable=true
# 支持方法参数
pagehelper.support-methods-arguments=true
#配置参数映射
pagehelper.params=count=countSql
参数说明:
可参考官方文档
准备数据表
准备Mapper接口
测试查询全部数据
运行结果:
默认SQL语句就是查询全部数据
PageHelper 分页查询
使用PageHelper.startPage(pageNum,pageSize) 方法来设置分页信息,分别是当前页数和每页显示的总记录数
注意:必须在mapper接口中的方法执行之前设置该分页信息 运行结果:
PageHelper.startPage(pageNum,pageSize)方法只对后面一次查询生效
下面有2次查询所有数据,第1次查询所有数据前插入了PageHelper.startPage(pageNum,pageSize) 方法,所以第1次查询是分页查询,而第2次查询前没有插入PageHelper.startPage(pageNum,pageSize) 方法,所以不是分页查询。 运行结果: 验证一下数据库的全部数据也确实只有7条:
|