Mybatis-PageHelper README

The project's README from github.com/pagehelper-org/Mybatis-PageHelper. As one markdown file: README.md.

MyBatis Pagination - PageHelper

MyBatis 分页插件 - PageHelper

Build Status Maven central

English

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

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

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

《MyBatis 从入门到精通》

MyBatis 从入门到精通

京东 ,当当 ,亚马逊

CSDN博客:http://blog.csdn.net/isea533/article/details/73555400

GitHub项目:https://github.com/mybatis-book/book

支持 MyBatis 3.1.0+

PageHelper 6 支持 jdk8+

PageHelper 5 支持 jdk6+

物理分页

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

static {
    //注册别名
    registerDialectAlias("hsqldb",HsqldbDialect.class);
    registerDialectAlias("h2",HsqldbDialect.class);
    registerDialectAlias("phoenix",HsqldbDialect.class);

    registerDialectAlias("postgresql",PostgreSqlDialect.class);

    registerDialectAlias("mysql",MySqlDialect.class);
    registerDialectAlias("mariadb",MySqlDialect.class);
    registerDialectAlias("sqlite",MySqlDialect.class);

    registerDialectAlias("herddb",HerdDBDialect.class);

    registerDialectAlias("oracle",OracleDialect.class);
    registerDialectAlias("oracle9i",Oracle9iDialect.class);
    registerDialectAlias("db2",Db2Dialect.class);
    registerDialectAlias("as400",AS400Dialect.class);
    registerDialectAlias("informix",InformixDialect.class);
    //解决 informix-sqli #129,仍然保留上面的
    registerDialectAlias("informix-sqli",InformixDialect.class);

    registerDialectAlias("sqlserver",SqlServerDialect.class);
    registerDialectAlias("sqlserver2012",SqlServer2012Dialect.class);

    registerDialectAlias("derby",SqlServer2012Dialect.class);
    //达梦数据库,https://github.com/mybatis-book/book/issues/43
    registerDialectAlias("dm",OracleDialect.class);
    //阿里云PPAS数据库,https://github.com/pagehelper/Mybatis-PageHelper/issues/281
    registerDialectAlias("edb",OracleDialect.class);
    //神通数据库
    registerDialectAlias("oscar",OscarDialect.class);
    registerDialectAlias("clickhouse",MySqlDialect.class);
    //瀚高数据库
    registerDialectAlias("highgo",HsqldbDialect.class);
    //虚谷数据库
    registerDialectAlias("xugu",HsqldbDialect.class);
    registerDialectAlias("impala",HsqldbDialect.class);
    registerDialectAlias("firebirdsql",FirebirdDialect.class);
    //人大金仓数据库
    registerDialectAlias("kingbase",PostgreSqlDialect.class);
    // 人大金仓新版本kingbase8
    registerDialectAlias("kingbase8",PostgreSqlDialect.class);
    //行云数据库
    registerDialectAlias("xcloud",CirroDataDialect.class);

    //openGauss数据库
    registerDialectAlias("opengauss",PostgreSqlDialect.class);

    //注册 AutoDialect
    //想要实现和以前版本相同的效果时,可以配置 autoDialectClass=old
    registerAutoDialectAlias("old",DefaultAutoDialect.class);
    registerAutoDialectAlias("hikari",HikariAutoDialect.class);
    registerAutoDialectAlias("druid",DruidAutoDialect.class);
    registerAutoDialectAlias("tomcat-jdbc",TomcatAutoDialect.class);
    registerAutoDialectAlias("dbcp",DbcpAutoDialect.class);
    registerAutoDialectAlias("c3p0",C3P0AutoDialect.class);
    //不配置时,默认使用 DataSourceNegotiationAutoDialect
    registerAutoDialectAlias("default",DataSourceNegotiationAutoDialect.class);
}

如果你使用的数据库不在这个列表时,你可以配置 dialectAlias 参数。

这个参数允许配置自定义实现的别名,可以用于根据 JDBCURL 自动获取对应实现,允许通过此种方式覆盖已有的实现,配置示例如(多个配置时使用分号隔开):

<property name="dialectAlias" value="oracle=com.github.pagehelper.dialect.helper.OracleDialect"/>
<!-- 6.0支持下面的引用方式,引用 Oracle9iDialect.class 的实现 -->
<property name="dialectAlias" value="oracle=oracle9i"/>
<!-- 6.0支持下面的引用方式,达梦使用oracle语法分页,简化类全名写法 -->
<property name="dialectAlias" value="dm=oracle"/>

使用 QueryInterceptor 规范

Executor 拦截器高级教程 - QueryInterceptor 规范

集成

使用 PageHelper 你只需要在 classpath 中包含 pagehelper-x.y.z.jar 和 jsqlparser-x.y.z.jar。

pagehelper 和 jsqlparser 对应关系参考 pom.xml 中的依赖版本。

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


<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本</version>
</dependency>

如果你使用 Spring Boot 可以参考: pagehelper-spring-boot-starter

继续查看配置和用法

文档:

Spring 集成示例

提交 BUG

https://github.com/pagehelper/Mybatis-PageHelper/issues/new

微信公众号

项目的发展离不开你的支持

请作者喝杯咖啡吧!

作者信息

网站:https://mybatis.io

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

作者邮箱: [email protected]

如需加群,请通过 http://mybatis.io 首页按钮加群。

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

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

MyBatis-3

MyBatis 专栏:

感谢所有项目贡献者!

Mybatis-PageHelper (pagehelper-org/Mybatis-PageHelper)

Searching Database…

这是什么?PageHelper 是 MyBatis(流行的 Java SQL 映射框架)的一个分页插件。只需在项目里引入一次,你的查询就自动获得分页支持——README 称它是 MyBatis 最方便的分页插件。
它是我加到项目里的库,还是需要单独运行的东西?它是一个库:一个挂在 MyBatis 查询执行流程上的插件 jar。你只需把 pagehelper 和 jsqlparser 的 jar 放到 classpath 上,不需要单独部署任何服务。
怎么把它加到 MyBatis 项目里?如果用 Maven,在 pom.xml 里添加 pagehelper 和 jsqlparser 依赖即可。Spring Boot 有专门的 pagehelper-spring-boot-starter,README 还提供了 Spring 3.x 和 4.x 的集成示例链接。
需要哪个 MyBatis 和 Java 版本?MyBatis 需要 3.1.0 或更高版本。PageHelper 6 要求 JDK 8 及以上,而较早的 PageHelper 5 系列仍然支持 JDK 6 及以上。
它能处理复杂的关联查询吗,有什么坑?它声称支持任何复杂的单表或多表分页,但 README 指向了一个「重要事项」(Important notes)页面,上面列了各种特殊情况——打算在特殊查询上依赖它之前,值得先看一下。
它是久经验证的插件,还是新出的实验品?它从 2014 年 6 月就开始开发,在 GitHub 上已有超过 12,000 颗星,是 MyBatis 生态里比较成熟的分页方案之一。
在商业项目里使用要付费吗?不用——项目采用 MIT 许可证,可以自由使用、修改和再分发,包括用在商业软件里。
想顺便学 MyBatis 本身,有什么资源?作者写过一本《MyBatis 从入门到精通》,还维护着一个 CSDN 博客;README 里附有这本书在京东、当当和 Amazon 上的链接。
Size
5.3 MB
Stars
12.3K
Age
12y
Commits · 90 Days