红联Linux门户
Linux帮助

Mybatis分页插件3.2.0发布

发布时间:2014-06-09 15:15:56来源:红联作者:empast
Mybatis分页插件 - PageHelper说明

V3.2.0:

1.统一返回值为Page(可以直接按List使用),方便在页面使用EL表达式,如${page.pageNum},${page.total}

2.解决count sql在oracle中的错误

3.增加了对Hsqldb的支持,主要目的是为了方便测试使用Hsqldb

4.增加了该项目的一个测试项目Mybatis-Sample,测试项目数据库使用Hsqldb

5.增加MIT协议

关于startPage方法和RowBounds方式

这个方法的参数为pageNum和pageSize,pageNum为第几页,pageSize为每页数量,在大多数前台框架中,使用这两个参数比较方便。但是这种方式和RowBounds不一致,如果不了解这种区别就会出错,RowBounds中的参数是offset和limit,limit和pageSize一样,offset和pageNum很不一样,offset是起始的行号,是从几个开始,而pageNum是起始的页码,offset = (pageNum-1)*pageSize。由于这种不同的存在,可能会导致一些意外出现,因而,这里希望各位使用分页插件或想使用分页插件说说自己的想法和建议,哪一种方式更好?是否有必要进行统一,以那个为准?

希望各位能在此留下您宝贵的意见(或进入【Issues4】讨论)。

使用方法

将本插件中的两个类Page.java和PageHelper.java放到项目中。

然后在Mybatis的配置xml中配置拦截器插件:

这里的PageHelper要使用完整的类路径,需要加上包路径。

增加dialect属性,使用时必须指定该属性,可选值为oracle,mysql,hsqldb,没有默认值,必须指定该属性。

不支持的情况

对于关联结果查询,使用分页得不到正常的结果,因为只有把数据全部查询出来,才能得到最终的结果,对这个结果进行分页才有效(Mybatis自带的内存分页也无法对这种情况进行正确的分页)。因而如果是这种情况,必然要先全部查询,在对结果处理,这样就体现不出分页的作用了。

相关内容:Mybatis关联结果查询分页方法

Mybatis-Sample项目

这个项目是一个分页插件的测试项目,使用Maven构建,该项目目前提供了4种基本使用方式的测试用例,需要测试Mybatis分页插件的可以clone该项目,该项目中的PageHelper.java和Page两个类不能保证随时和当前项目同步更新,使用时请注意!

项目地址:http://git.oschina.net/free/Mybatis-Sample

因为新增了一个Mybatis-Sample项目,所以这里的示例只是简短的一部分,需要更丰富的示例,请查看Mybatis-Sample项目

Mybatis-Sample(分页插件测试项目):http://git.oschina.net/free/Mybatis-Sample

Mybatis项目:https://github.com/mybatis/mybatis-3

Mybatis文档:http://mybatis.github.io/mybatis-3/zh/index.html

Mybatis专栏:
Mybatis示例

Mybatis问题集

作者博客:
http://my.oschina.net/flags/blog

http://blog.csdn.net/isea533

来自:开源中国社区
文章评论

共有 0 条评论