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)

mybatis
Searching Database…

What is this?PageHelper is a pagination plugin for MyBatis, the popular Java SQL mapper. You add it once to a project and your queries get paging support — the README bills it as the most convenient pagination plugin for MyBatis.
Is it a library I add to my project, or something separate I have to run?It's a library: a plugin jar that hooks into MyBatis query execution. You just put pagehelper and jsqlparser jars on the classpath — there is no separate service to deploy.
How do I add it to a MyBatis project?Add the pagehelper and jsqlparser dependencies to your pom.xml if you use Maven. For Spring Boot there is a dedicated pagehelper-spring-boot-starter, and the README also links integration examples for Spring 3.x and 4.x.
Which MyBatis and Java versions do I need?MyBatis 3.1.0 or newer. PageHelper 6 requires JDK 8+, while the older PageHelper 5 line still supports JDK 6+.
Will it cope with complex joins, or are there gotchas?It claims to support any complex single-table or multi-table pagination, but the README points to an 'Important notes' page covering special cases — worth checking before relying on it for exotic queries.
Is this a battle-tested plugin or a new experiment?It has been developed since June 2014 and has over 12,000 GitHub stars, making it one of the established pagination choices in the MyBatis ecosystem.
Is it free to use in commercial projects?Yes — the project is MIT-licensed, so you can use, modify and redistribute it freely, including in commercial software.
Where can I learn MyBatis itself alongside this plugin?The author wrote the book 'MyBatis 从入门到精通' (MyBatis: From Beginner to Master) and keeps a CSDN blog; the README links to the book on JD, Dangdang and Amazon.
Size
5.3 MB
Stars
12.3K
Age
12y
Commits · 90 Days