Mybatis 分页插件 PageHelper 4.2.0 发布

Liuzh_533
 Liuzh_533
发布于 2016年12月09日
收藏 94

Mybatis分页插件 - PageHelper

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

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

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

物理分页

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

  1. Oracle

  2. Mysql

  3. MariaDB

  4. SQLite

  5. Hsqldb

  6. PostgreSQL

  7. DB2

  8. SqlServer(2005,2008)

  9. Informix

  10. H2

  11. SqlServer2012

  12. Derby

Maven坐标:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.2.0</version>
</dependency>

4.2.0

  • 使用新的方式进行分页,4.2版本是从5.0版本分离出来的一个特殊版本,这个版本兼容4.x的所有功能,5.0版本时为了简化分页逻辑,会去掉部分功能,4.2.0是4.x的最后一个版本,有bug还会维护。

  • 支持 MyBatis 3.1.0+ 版本

  • 增加对 Derby 数据库的支持

  • 对除 informix 外的全部数据库进行测试,全部通过

  • PageHelper增加手动清除方法clearPage()

  • 解决 SqlServer 多个with(nolock)时出错的问题

  • 对CountMappedStatement 进行缓存,配置方式见BaseSqlUtil 319行

  • 由于SqlServer的sql处理特殊,因此增加了两个SQL缓存,具体配置参考SqlServerDialect类

  • 添加 sqlserver 别名进行排序功能,在解析sql时,会自动将使用的别名转换成列名 by panmingzhi

  • 新增sqlCacheClass参数,该参数可选,可以设置sql缓存实现类,默认为SimpleCache,当项目包含guava时,使用GuavaCache,也可以通过参数sqlCacheClass指定自己的实现类,有关详情看com.github.pagehelper.cache包。

  • 解决#135,增加/*keep orderby*/注解,SQL中包含该注释时,count查询时不会移出order by

  • sqlserver 没有 orderby 时,使用order by rand() 进行排序,不再强制要求有 order by。#82 #118

这次更新最大的改动就是分页的实现方式,这本来是属于5.0版本的内容,但是为了兼容4.x版本,特别提供的4.2.0版本。新的 5.0 版本会在 2017年初发布,新的分页插件设计来源于我正在写的 MyBatis 一书。

由于新的实现方式,分页插件现在可以支持 MyBatis 3.1.0+ 版本。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Mybatis 分页插件 PageHelper 4.2.0 发布
加载中

最新评论(18

Liuzh_533
Liuzh_533
4.2.0 版本如果没有guava依赖会产生一个错误,目前最新版本为4.2.1,更新过的朋友改到4.2.1即可。
夜苍狼
夜苍狼

引用来自“夜苍狼”的评论

随便你怎么说,个人观点不同而已

引用来自“Liuzh_533”的评论

我个人的感觉是你在这条路刚走了个开头,以后未必像现在这么以为了。
如果用 MyBatis 而担心这种性能,就不如手动用 JDBC 了。
互相反驳也没必要。
呵呵,在我的编码准则中,性能占的比重是比较高的,所以很多东西我都会优先考虑性能问题,但也并不是说为了性能不惜一切代价,你所说的直接写JDBC有点偏激了,还有我所说的是分页插件,并不是mybatis本身,在我的观念中,对mybatis本身的评价还是比较高的
Liuzh_533
Liuzh_533

引用来自“夜苍狼”的评论

随便你怎么说,个人观点不同而已
我个人的感觉是你在这条路刚走了个开头,以后未必像现在这么以为了。
如果用 MyBatis 而担心这种性能,就不如手动用 JDBC 了。
互相反驳也没必要。
夜苍狼
夜苍狼

引用来自“夜苍狼”的评论

我研究过一个旧版本分页插件的源代码,一个很简单的功能,在逻辑上绕了一大圈,可以想象对性能影响还是挺大的,所以在我统治下的代码不允许用分页插件

引用来自“notreami”的评论

表示特别鄙视这类扯淡的。哪个地方绕了一大圈?优化的方案是什么?拿示例出来说话。
随便你怎么说,个人观点不同而已
夜苍狼
夜苍狼
随便你怎么说,个人观点不同而已
notreami
notreami

引用来自“夜苍狼”的评论

我研究过一个旧版本分页插件的源代码,一个很简单的功能,在逻辑上绕了一大圈,可以想象对性能影响还是挺大的,所以在我统治下的代码不允许用分页插件
表示特别鄙视这类扯淡的。哪个地方绕了一大圈?优化的方案是什么?拿示例出来说话。
夜苍狼
夜苍狼
我研究过一个旧版本分页插件的源代码,一个很简单的功能,在逻辑上绕了一大圈,可以想象对性能影响还是挺大的,所以在我统治下的代码不允许用分页插件
踏雪无痕丶
踏雪无痕丶

引用来自“eechen”的评论

教鄙视PHP的自大JAVAer做人之PHP寥寥几行代码轻松实现百度搜索那样的分页列表和导航链接
https://my.oschina.net/eechen/blog/802337
别逗了
oblivion1
oblivion1

引用来自“backtract”的评论

源码注释是乱码啊
修改编码
返回顶部
顶部