参考:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md
https://github.com/abel533/Mybatis-Spring/tree/spring3.x
添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>最新版本</version>
</dependency>
在 mybatis 配置文件中配置插件拦截器
<!--
plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
properties?, settings?,
typeAliases?, typeHandlers?,
objectFactory?,objectWrapperFactory?,
plugins?,
environments?, databaseIdProvider?, mappers?
-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
<property name="param1" value="value1"/>
</plugin>
</plugins>
分页插件参数介绍
offsetAsPageNum
默认值为 false,该参数对使用 RowBounds
作为分页参数时有效。当该参数设置为 true 时,会将 RowBounds
中的 offset
参数当作 pageNum
使用。
可以用页码和页面大小两个参数进行分页。
rowBoundsWithCount
默认值为 false,该参数对使用 RowBounds
作为分页参数时有效。当该参数设置为 true 时,使用 RowBounds
分页会进行 count 查询。
pageSizeZero
默认值为 false,当该参数设置为 true
时,如果 pageSize = 0
或者 RowBounds.limit = 0
就会查询出全部的结果(相当于没有执行分页查询,但是返回结果类型仍然是 Page
类型)
reasonable
分页合理化参数,默认值为 false
,当该参数设置为 true
时,pageNum <= 0
时会查询第一页,pageNum > pages
(超过总数时),会查询最后一页。默认 false
时,直接根据参数进行查询。
params
为了支持 startPage(Object params)
方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值,可以配置 pageNum,pageSize,count,pageSizeZero,reasonable
,不配置映射的用默认值。
默认值为 pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
supportMethodsArguments
支持通过 Mapper 接口参数来传递分页参数,默认值为 false
,分页插件会从查询方法的参数值中,自动根据上面 params
配置的字段中取值,查找到合适的值时就会自动分页。
autoRuntimeDialect
默认值为 false,设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页。
closeConn
默认为 true。当使用运行时动态数据源或没有设置 helperDialect
属性自动获取数据库类型时,会自动获取一个也数据库连接,通过该属性来设置是否关闭获取这个连接,默认 true 关闭,设置为 false 后,不会关闭连接,这个参数的设置要根据自己选择的数据源来决定。
aggregateFunctions
默认为所有常见数据的聚合函数,允许手动添加聚合函数,所有以聚合函数开头的函数,在进行 count 转换时,会套一层。其他函数和列会被替换为 count(0),其中 count 列可以自己配置