如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。 经过近4个月的完善和反馈,3.3.0版本已经稳定,该版本相对3.2.3进行了大量的重构和完善。 v3.3.0 对MappedStatement对象进行缓存,包括count查询的MappedStatement以及分页查询的MappedStatement,分页查询改为预编译查询。 独立的SqlUtil类,由于原来的PageHelper太复杂,因此将拦截器外的其他代码独立到SqlUtil中,方便查看代码和维护。SqlUtil中增加Parser接口,提供一个抽象的SimpleParser实现,不同数据库的分页代码通过继承SimpleParser实现。 特殊的Parser实现类SqlParser类,这是一个独立的java类,主要提供了更高性能的count查询sql,可以根据sql自动改为count(*)查询,自动去除不需要的order by语句,如果需要使用该类,只要把该类放到SqlUtil类相同的包下即可,同时需要引入Jar包jsqlparser-0.9.1.jar。 增强的PageInfo类,PageInfo类包含了分页几乎所有需要用到的属性值,减少了对分页逻辑的过多投入。 分页合理化,自动处理pageNum的异常情况。例如当pageNum<=0时,会设置pageNum=1,然后查询第一页。当pageNum>pages(总页数)时,自动将pageNum=pages,查询最后一页。 增加对PostgreSQL,MariaDB,SQLite支持。其中MariaDB,SQLite和Mysql分页一样。 历史更新:http://git.oschina.net/free/Mybatis_PageHelper/wikis/Changelog 如何使用:http://git.oschina.net/free/Mybatis_PageHelper/wikis/HowToUse 这个版本已经实现了所有可能想到的改进,经过4个月的完善,可能已经是最后的版本了。 如果各位发现仍然可以大幅提升性能和使用性的方法,欢迎告知。 本插件目前支持6种数据库,其中Mysql,MariaDB,SQLite使用的是同一种分页。 这6种数据库中,除了SQLite没有经过完整测试外,其他的数据库全部测试通过。 由于每增加一种数据库支持,都需要安装数据库并进行完整的测试,对个人来说压力比较大,所以除非有新的开发者加入,暂时不会添加对mssql和db2的支持。如果您有兴趣,欢迎参与! Mybatis 分页插件 3.3.0 发布下载地址