Skip to content

Latest commit

 

History

History
144 lines (97 loc) · 6.64 KB

README_zh.md

File metadata and controls

144 lines (97 loc) · 6.64 KB

#MyBatis 分页插件 - PageHelper

English

如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。

分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示

想要使用分页插件?请看如何使用分页插件

##物理分页

该插件目前支持以下数据库的物理分页:

  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

分页插件默认会检测当前的数据库链接,自动选择对应的数据库分页。

你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:

oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby

特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。

##MyBatis 工具网站:http://mybatis.tk

##分页插件支持 MyBatis 3.1.0+(支持最新版本)

##分页插件 5.0

由于分页插件 5.0 版本和 4.2.x 实现完全不同,所以 master 分支为 5.x 版本,4.2 作为一个分支存在,如果有针对 4.2 的 PR,请注意提交到分支版本。

##分页插件最新版本为 5.0.0-beta 使用 PageHelper 你只需要在 classpath 中包含 pagehelper-x.x.x.jarjsqlparser-0.9.5.jar

如果你使用 Maven,你只需要在 pom.xml 中添加下面的依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.0.0-beta</version>
</dependency>

##最近的更新日志

###5.0.0-beta

  • 使用更好的方式处理分页逻辑
  • 新的分页插件拦截器为 com.github.pagehelper.PageInterceptor
  • 新的 PageHelper 是一个特殊的 Dialect 实现类,以更友好的方式实现了以前的功能
  • 新的分页插件仅有 dialect 一个参数,默认的 dialect 实现类为 PageHelper
  • PageHelper 仍然支持以前提供的参数,在最新的使用文档中已经全部更新
  • PageHelperhelperDialect 参数和以前的 dialect 功能一样,具体可以看文档的参数说明
  • 增加了基于纯 RowBoundsPageRowBounds 的分页实现,在 com.github.pagehelper.dialect.rowbounds 包中,这是用于作为 dialect 参数示例的实现,后面会补充更详细的文档
  • 去掉了不适合出现在分页插件中的 orderby 功能,以后会提供单独的排序插件
  • 去掉了 PageHelper 中不常用的方法
  • 新的文档,更新历来更新日志中提到的重要内容,提供英文版本文档

###4.2.1

  • 解决SimpleCache类遗留问题导致的错误 #143 fix by 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

##项目文档:

###1. 如何使用分页插件

如果要使用分页插件,这篇文档一定要看,看完肯定没有问题。

如果和 Spring 集成不熟悉,可以参考下面两个 MyBatis 和 Spring 集成的框架

只有基础的配置信息,没有任何现成的功能,作为新手入门搭建框架的基础

这两个集成框架集成了 PageHelper 和 通用 Mapper

###2. 使用 RowBounds 和 PageRowBounds 方式

###3. 实现自己的分页插件

  • helperDialect 方式
  • dialect 方式

###4. SQL 缓存配置

  • count sql 缓存,SqlServer 的缓存。

##更新日志

包含全部的详细的更新日志。

##重要提示

提示很重要,建议一定看一遍!

##提交 BUG

##相关链接

作者博客:http://blog.csdn.net/isea533

作者邮箱: [email protected]

MyBatis QQ 群: MyBatis

本项目在 github 的项目地址:https://github.com/pagehelper/Mybatis-PageHelper

本项目在 gitosc 的项目地址:http://git.oschina.net/free/Mybatis_PageHelper

##MyBatis-3

MyBatis 专栏: