Skip to content

digdeep126/Mybatis-PageHelper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Mybatis分页插件 - PageHelper

如果你也在用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

配置dialect属性时,可以使用小写形式:

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

在4.0.0版本以后,dialect参数可以不配置,系统能自动识别这里提到的所有数据库。

对于不支持的数据库,可以实现com.github.pagehelper.parser.Parser接口,然后配置到dialect参数中(4.0.2版本增加)。

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

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

##分页插件支持MyBatis3.2.0~3.3.0(包含)

##分页插件最新版本为4.1.0

###Maven坐标

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.1.0</version>
</dependency>

###下载JAR包

分页插件pagehelper.jar:

###由于使用了sql解析工具,你还需要下载jsqlparser.jar

####4.1.0及以后版本需要0.9.4版本

####4.1.0以前版本需要0.9.1版本

##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测试。

###使用ISelect接口可以参考如下用法(返回值为PagePageInfo):

//jdk6,7用法,创建接口
Page<Country> page = PageHelper.startPage(1, 10).setOrderBy("id desc").doSelectPage(new ISelect() {
    @Override
    public void doSelect() {
        countryMapper.selectGroupBy();
    }
});
//jdk8 lambda用法
Page<Country> page = PageHelper.startPage(1, 10).setOrderBy("id desc").doSelectPage(()-> countryMapper.selectGroupBy());
//为了说明可以链式使用,上面是单独setOrderBy("id desc"),也可以直接如下
Page<Country> page = PageHelper.startPage(1, 10, "id desc").doSelectPage(()-> countryMapper.selectGroupBy());

//也可以直接返回PageInfo,注意doSelectPageInfo方法和doSelectPage
pageInfo = PageHelper.startPage(1, 10).setOrderBy("id desc").doSelectPageInfo(new ISelect() {
    @Override
    public void doSelect() {
        countryMapper.selectGroupBy();
    }
});
//对应的lambda用法
pageInfo = PageHelper.startPage(1, 10).setOrderBy("id desc").doSelectPageInfo(() -> countryMapper.selectGroupBy());

//count查询,返回一个查询语句的count数
long total = PageHelper.count(new ISelect() {
    @Override
    public void doSelect() {
        countryMapper.selectLike(country);
    }
});
//lambda
total = PageHelper.count(()->countryMapper.selectLike(country));

##4.0.3更新日志:

  • PageHelper新增3个offsetPage方法,参数主要是offsetlimit,允许不规则分页

  • 新增两个可配参数supportMethodsArgumentsreturnPageInfo(该参数在4.1.0版本去掉),具体含义和用法请看如何使用分页插件中的参数介绍

##4.0.2更新日志:

  • 简化Page<E>类,包含排序条件orderBy

  • dialect参数是数据库名称时不区分大小写

  • dialect参数可以设置为实现com.github.pagehelper.parser.Parser接口的实现类全限定名称

  • 增加对H2数据库的支持

  • OrderByHelper(排序插件)融合到PageHelper中,移除OrderByHelper

  • 该版本调整比较大,但对开发人员影响较小,为以后扩展和完善提供方便

##4.0.1更新日志:

##4.0.0更新日志:

  • 配置属性dialect不在强制要求,可以不写,分页插件会自动判断

  • 解决从request中获取分页参数时的错误,感谢探路者☆

  • PageInfo增加空构造方法,所有属性增加setter方法

  • 增加对排序的支持

  • 可以单独使用PageHelper.orderBy(String orderBy)对查询语句增加排序,也可以配合startPage的其他方法使用

  • 可以使用PageHelper.startPage(int start,int size,String orderBy)对分页查询进行排序

  • 修改分页查询的处理逻辑,主要是将原sqlSource包装成可以分页和排序的sqlSource

##项目文档wiki

###如何使用分页插件

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

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

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

这两个集成框架集成了MyBatis分页插件和MyBatis通用Mapper。

###如何使用排序插件

###更新日志

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

###重要提示

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

###提交(gitosc)BUG

##相关链接

对应于oschub的项目地址:http://git.oschina.net/free/Mybatis_PageHelper

对应于github的项目地址:https://github.com/pagehelper/Mybatis-PageHelper

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专栏:

作者博客:

作者邮箱: abel533@gmail.com

Mybatis工具群: Mybatis工具

About

Mybatis通用分页插件

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%