pagehelper-org / Mybatis-PageHelper
Mybatis通用分页插件
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing pagehelper-org/Mybatis-PageHelper in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
Preview
MyBatis 分页插件 - PageHelper
如果你也在用 MyBatis,建议尝试该分页插件,这一定是<b>最方便</b>使用的分页插件。
分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。
想要使用分页插件?请看如何使用分页插件。
《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:
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
微信公众号
<img src="wx_mybatis.jpg" height="300"/>项目的发展离不开你的支持
请作者喝杯咖啡吧!
<img src="ali_pay.png" height="300"/> <img src="wx_pay.png" height="300"/>作者信息
作者博客: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 专栏: