MyBatis-PageHelper基础

介绍

配置

配置maven

1
2
3
4
5
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>

在 MyBatis 配置 xml 中配置拦截器插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
<!--5.0以后自动识别数据库-->
<!--<property name="dialect" value="mysql"/>-->
<!-- 默认值为false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为true时,使用 RowBounds 分页会进行 count 查询。 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- reasonable:value=true时,pageNum小于1会查询第一页,如果pageNum大于pageSize会查询最后一页 -->
<property name="reasonable" value="true"/>
<!--
默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页。
如果你在 Spring 中配置了动态数据源,并且连接不同类型的数据库,这时你可以配置 autoRuntimeDialect 为 true
-->
<property name="autoRuntimeDialect" value="true"/>

<!-- autoRuntimeDialect:默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 -->
<property name="autoRuntimeDialect" value="true"/>
</plugin>
</plugins>

使用方式

方式1(推荐)

1
2
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectIf(1);

方式2(推荐)

1
2
PageHelper.offsetPage(1, 10);
List<Country> list = countryMapper.selectIf(1);

方式3

1
2
3
//配置supportMethodsArguments=true
//在代码中直接调用:
List<Country> list = countryMapper.selectByPageNumSize(user, 1, 10);

方式4

1
2
//jdk8 lambda用法
Page<Country> page = PageHelper.startPage(1, 10).doSelectPage(()-> countryMapper.selectGroupBy());

参考

坚持原创技术分享,您的支持将鼓励我继续创作!