# Mybatis_PageHelper **Repository Path**: nipin_990/Mybatis_PageHelper ## Basic Information - **Project Name**: Mybatis_PageHelper - **Description**: Mybatis分页插件 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 845 - **Created**: 2016-12-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #Mybatis分页插件 - PageHelper 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件支持任何复杂的单表、多表分页,部分特殊情况请看[重要提示](http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/Important.markdown)。 想要使用分页插件?请看[如何使用分页插件](http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown)。 ##物理分页 该插件目前支持以下数据库的物理分页: 1. `Oracle` 2. `Mysql` 3. `MariaDB` 4. `SQLite` 5. `Hsqldb` 6. `PostgreSQL` 7. `DB2` 8. `SqlServer(2005,2008)` 9. `Informix` 10. `H2` 11. `SqlServer2012` 12. `Derby` 配置`dialect`属性时,可以使用小写形式: `oracle`,`mysql`,`mariadb`,`sqlite`,`hsqldb`,`postgresql`,`db2`,`sqlserver`,`informix`,`h2`,`sqlserver2012`,`derby` 在4.0.0版本以后,`dialect`参数可以不配置,系统能自动识别这里提到的所有数据库。 对于不支持的数据库,可以实现`com.github.pagehelper.parser.Parser`接口,然后配置到`dialect`参数中(4.0.2版本增加)。 特别注意:使用SqlServer2012数据库时,需要手动指定`sqlserver2012`,否则会使用2005的方式进行分页。 ##MyBatis工具网站:[http://mybatis.tk](http://www.mybatis.tk) ##分页插件支持MyBatis3.1.0+(支持最新版本) ##分页插件最新版本为4.2.1 ###Maven坐标 ```xml com.github.pagehelper pagehelper 4.2.1 ``` ###下载JAR包 分页插件pagehelper.jar: - https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ - http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/ ###由于使用了sql解析工具,你还需要下载jsqlparser.jar ####4.1.0及以后版本需要0.9.5版本 - http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.5/ ####4.1.0以前版本需要0.9.1版本 - http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.1/ ##4.2.1 - 解决`SimpleCache`类遗留问题导致的错误 [#143](http://git.oschina.net/free/Mybatis_PageHelper/issues/143) fix by [dhhua](https://github.com/dhhua) ##4.2.0 - 使用新的方式进行分页,4.2版本是从5.0版本分离出来的一个特殊版本,这个版本兼容4.x的所有功能,5.0版本时为了简化分页逻辑,会去掉部分功能,所以4.2是4.x的最后一个版本。 - 支持 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()` #82 #118 ##4.1.6更新日志 - 通过间接处理字符串解决SqlServer中不支持`with(nolock)`的问题#86,详情可以看`SqlServerParser`和`SqlServer2012Dialect` ##4.1.5更新日志 - 更新`PageProviderSqlSource`,支持3.4.0版本的`Provider`注解方式的分页#102 - 解决`SqlUtil`未初始化`PARAMS`属性导致的错误 ##4.1.4更新日志 - 解决`closeConn`未设置时,默认值被覆盖变成`false`的问题#97 - `closeConn`不只对动态数据源有效,当没有设置`dialect`属性自动获取数据库类型的时候同样有效 - 解决关闭tomcat的时候提示线程安全问题#98,这个问题不会导致内存溢出,已经增加处理 ##4.1.3更新日志 - 解决反射类没有完全捕获异常的问题#94 - 把SqlServer类所有private都改成了protected,方便继承修改#93 ##4.1.2更新日志 - 增加可配参数`closeConn`,当使用动态数据源时,分页插件获取jdbcUrl后,控制是否关闭当前连接,默认`true`关闭 - count查询改为`count(0)`,分库分表情况下的效率可能更高 ##4.1.1更新日志: - 解决动态数据源时获取连接后未关闭的严重bug#80 - 解决动态数据源时SqlSource和parser绑定导致不能切换方言的问题 ##4.1.0更新日志: - 增加`autoRuntimeDialect`参数,允许在运行时根据多数据源自动识别对应方言的分页(暂时不支持自动选择`sqlserver2012`,只能使用`sqlserver`)。 - 去掉了4.0.3版本增加的`returnPageInfo`参数,接口返回值不支持`PageInfo`类型,可以使用下面`ISelect`中演示的方法获取 - 增加对`SqlServer2012`的支持,需要手动指定`dialect=sqlserver2012`,否则会使用2005的方式进行分页 - jsqlparser升级到0.9.4版本,使用jar包时必须用最新的0.9.4版本,使用Maven会自动依赖0.9.4 - 增加`ISelect`接口,方便调用,使用方法可以参考`src/test/java/com.github.pagehelper.test.basic.TestISelect`测试。 ##项目文档[wiki](http://git.oschina.net/free/Mybatis_PageHelper/wikis/home): ###[如何使用分页插件](http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown) 如果要使用分页插件,这篇文档一定要看,看完肯定没有问题。 如果和Spring集成不熟悉,可以参考下面两个MyBatis和Spring集成的框架 只有基础的配置信息,没有任何现成的功能,作为新手入门搭建框架的基础 - [集成Spring3.x](https://github.com/abel533/Mybatis-Spring) - [集成Spring4.x](https://github.com/abel533/Mybatis-Spring/tree/spring4) 这两个集成框架集成了MyBatis分页插件和MyBatis通用Mapper。 ###[如何使用排序插件](http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/UseOrderBy.md) ###[更新日志](http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/Changelog.markdown) 包含全部的详细的更新日志。 ###[重要提示](http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/Important.markdown) 提示很重要,建议一定看一遍! ###[提交(gitosc)BUG](http://git.oschina.net/free/Mybatis_PageHelper/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=) ##相关链接 对应于oschub的项目地址:http://git.oschina.net/free/Mybatis_PageHelper 对应于github的项目地址:https://github.com/pagehelper/Mybatis-PageHelper Mybatis-Sample(分页插件测试项目):[http://git.oschina.net/free/Mybatis-Sample](http://git.oschina.net/free/Mybatis-Sample) Mybatis项目:https://github.com/mybatis/mybatis-3 Mybatis文档:http://mybatis.github.io/mybatis-3/zh/index.html Mybatis专栏: - [Mybatis示例](http://blog.csdn.net/column/details/mybatis-sample.html) - [Mybatis问题集](http://blog.csdn.net/column/details/mybatisqa.html) 作者博客: - http://my.oschina.net/flags/blog - http://blog.csdn.net/isea533 作者邮箱: abel533@gmail.com Mybatis工具群: Mybatis工具