MyBatis 三剑客之一 PageHelper

参考: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 列可以自己配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值