Mybatis分页插件 - PageHelper
如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。
分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。
想要使用分页插件?请看如何使用分页插件。
物理分页
该插件目前支持以下数据库的物理分页:
Oracle
Mysql
MariaDB
SQLite
Hsqldb
PostgreSQL
DB2
SqlServer(2005,2008)
Informix
H2
SqlServer2012
Derby
Maven坐标:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.2.0</version> </dependency>
4.2.0
使用新的方式进行分页,4.2版本是从5.0版本分离出来的一个特殊版本,这个版本兼容4.x的所有功能,5.0版本时为了简化分页逻辑,会去掉部分功能,4.2.0是4.x的最后一个版本,有bug还会维护。
支持 MyBatis 3.1.0+ 版本
增加对 Derby 数据库的支持
对除 informix 外的全部数据库进行测试,全部通过
PageHelper增加手动清除方法clearPage()
解决 SqlServer 多个with(nolock)时出错的问题
对CountMappedStatement 进行缓存,配置方式见BaseSqlUtil 319行
由于SqlServer的sql处理特殊,因此增加了两个SQL缓存,具体配置参考SqlServerDialect类
添加 sqlserver 别名进行排序功能,在解析sql时,会自动将使用的别名转换成列名 by panmingzhi
新增sqlCacheClass参数,该参数可选,可以设置sql缓存实现类,默认为SimpleCache,当项目包含guava时,使用GuavaCache,也可以通过参数sqlCacheClass指定自己的实现类,有关详情看com.github.pagehelper.cache包。
解决#135,增加/*keep orderby*/注解,SQL中包含该注释时,count查询时不会移出order by
sqlserver 没有 orderby 时,使用order by rand() 进行排序,不再强制要求有 order by。#82 #118
这次更新最大的改动就是分页的实现方式,这本来是属于5.0版本的内容,但是为了兼容4.x版本,特别提供的4.2.0版本。新的 5.0 版本会在 2017年初发布,新的分页插件设计来源于我正在写的 MyBatis 一书。
由于新的实现方式,分页插件现在可以支持 MyBatis 3.1.0+ 版本。