PageHelper
PageHelper 是 Mybatis 的分页插件,支持多数据库、多数据源。可以简化数据库的分页查询操作,整合过程也极其简单,只需引入依赖即可。
该插件目前支持以下数据库的物理分页:
Oracle
Mysql
MariaDB
SQLite
Hsqldb
PostgreSQL
DB2
SqlServer(2005,2008)
Informix
H2
SqlServer2012
Derby
Phoenix
- 达梦数据库(dm)
- 阿里云PPAS数据库
- 神通数据库
- HerdDB
使用步骤
- 首先在pom.xml中添加依赖
<!--分页插件 pageHelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
- 如果是MySQL数据库的话无需任何配置即可使用
- 测试使用
@Test
public void selectAllByLimit(){
//初始化 currNo起始页码 和 PageSize页面容量
PageHelper.startPage(1,5);
//需要传入分页返回的对象 和 查询数据的接口
//这里使用的是MyBatis-Plus查询全部的接口
PageInfo<User> userList = new PageInfo<>(userMapper.selectList(null));
//返回的userList里边有很多你的需要的参数
//getTotal总共几条数据
System.out.println(userList.getTotal());
//getPages一共有几页
System.out.println(userList.getPages());
//getList返回的数据集合
userList.getList().forEach(System.out::println );
//还有很多参数 不在一一举例
}
PageHelper常用配置
- 在 application.yml 中配置
pagehelper:
# dialect: ①
# 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式(可以不设置)
helper-dialect: mysql
# 上面数据库设置后,下面的设置为true不会改变上面的结果(默认为true)
auto-dialect: true
page-size-zero: false # ②
reasonable: true # ③
# 默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。(一般用不着)
offset-as-page-num: false
# 默认值为 false,RowBounds是否进行count查询(一般用不着)
row-bounds-with-count: false
#params: ④
#support-methods-arguments: 和params配合使用,具体可以看下面的讲解
# 默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页
auto-runtime-dialect: false # ⑤
# 与auto-runtime-dialect配合使用
close-conn: true
# 用于控制默认不带 count 查询的方法中,是否执行 count 查询,这里设置为true后,total会为-1
default-count: false
#dialect-alias: ⑥