GitPedia

Mybatis PageHelper

Mybatis通用分页插件

From pagehelper-org·Updated June 21, 2026·View on GitHub·

分页插件支持任何复杂的单表、多表分页,部分特殊情况请看[重要提示](https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/Important.md)。 The project is written primarily in Java, distributed under the MIT License license, first published in 2014. It has gained significant community traction with 12,358 stars and 3,092 forks on GitHub. Key topics include: mybatis, mybatis-plugin.

Latest release: v6.1.16.1.1 - 2025-06-20
June 19, 2025View Changelog →

MyBatis Pagination - PageHelper

MyBatis 分页插件 - PageHelper

Build Status
Maven central

English

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

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

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

《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+

物理分页

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

java
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 自动获取对应实现,允许通过此种方式覆盖已有的实现,配置示例如(多个配置时使用分号隔开):

xml
<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 中添加下面的依赖:

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

微信公众号

<img src="wx_mybatis.jpg" height="300"/>

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

请作者喝杯咖啡吧!

<img src="ali_pay.png" height="300"/> <img src="wx_pay.png" height="300"/>

作者信息

网站:https://mybatis.io

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

作者邮箱: abel533@gmail.com

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

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

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

MyBatis-3

MyBatis 专栏:

感谢所有项目贡献者!

<a href="https://github.com/pagehelper/Mybatis-PageHelper/graphs/contributors"> <img src="https://contributors-img.web.app/image?repo=pagehelper/Mybatis-PageHelper" /> </a>

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from pagehelper-org/Mybatis-PageHelper via the GitHub API.Last fetched: 6/23/2026