Mybatis分页插件PageHelper正确的用法(网上有2篇不够科学的文章)
1. p=2#comments" target="_blank" style="color: rgb(38, 112, 154); margin: 0px; padding: 0px; text-decoration: none;">http://www.oschina.net/news/53808/mybatis_pagehelper-3-2-2? p=2#comments
在这篇文章中。作者有提到须要添加PageHelper的配置,原话“或者假设你使用Maven,你能够加入例如以下依赖:”
这句话是有问题的,
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> <!-- 该參数默觉得false --> <!-- 设置为true时,会将RowBounds第一个參数offset当成pageNum页码使用 --> <!-- 和startPage中的pageNum效果一样--> <property name="offsetAsPageNum" value="true"/> <!-- 该參数默觉得false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true"/> </plugin></plugins>
这几段插件配置的代码。应该放到Mybatis的config配置文件里,而非Maven。
后来。听Leader说,他在这也被误导了。搞了一天时间吧。
2.
http://www.oschina.net/p/mybatis_pagehelper作者使用PageHelper的方法不太对,尽管Java后台測试是能够的。可是在FTL中显示的时候,EL表达式不能正常显示。
作者的代码:
@Test
public void testPageHelperByStartPage() throws Exception { String logip = ""; String username = "super"; String loginDate = ""; String exitDate = null; String logerr = null; //不进行count查询。第三个參数设为false PageHelper.startPage(1, 10, false); //返回结果是Page<SysLoginLog> //该对象除了包括返回结果外。还包括了分页信息,能够直接按List使用 List<SysLoginLog> logs = sysLoginLogMapper .findSysLoginLog(logip, username, loginDate, exitDate, logerr); Assert.assertEquals(10, logs.size()); //当第三个參数没有或者为true的时候,进行count查询 PageHelper.startPage(2, 10); //返回结果是Page<SysLoginLog> //该对象除了包括返回结果外,还包括了分页信息,能够直接按List使用 Page<SysLoginLog> page = (Page<SysLoginLog>) sysLoginLogMapper .findSysLoginLog(logip, username, loginDate, exitDate, logerr); Assert.assertEquals(10, page.getResult().size()); //进行count查询。返回结果total>0 Assert.assertTrue(page.getTotal() > 0);假设在Freemarker的FTL页面中。打印${page.pageNum}会报错,大致的意思是“expected a hash,but is a sequence”。
期待是hash类型,但实际上序列,list、ArrayList都算作序列。
这个地方情况比較特殊,Page是一个JavaBean。有若干属性,可是他又继承了ArrayList。经实际分析,
Freemarker把这个对象当作了ArrayList,能够直接遍历<#list page as item></#list>。
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectAll();PageInfo page = new PageInfo(list);assertEquals(10, list.size());assertEquals(239, page.getTotal());
3.我的实际代码和效果
打印结果:com.github.pagehelper.PageInfo@125d70de, 1
关键代码:
}
Leader在从网上寻找方法的时候。正好遇到了和採纳了这些不够科学的方法,他写的程序是能够执行的,有2点原因。
他没有在Maven中配置那个Plugin,而是在Mybatis中。出于其它须要,正好没有直接使用Page对象,而是使用自己组装的Bean。
今天遇到了这2个大问题。特意总结下,希望后来的人,不要再被误导了。
除了PageHelper这个分页插件,我在秒针工作的时候,原秒针Web前端高级project师 现百度高级project师,张少龙-默默。
他也自己实现了一个插件,今后再分享出来。
小雷FansUnion
2014年10月20日
湖北武汉
Mybatis分页插件PageHelper正确的用法(网上有2篇不够科学的文章)的更多相关文章
- Mybatis分页插件PageHelper正确的使用方法(网上有2篇不够科学的文章)
今天下午在Mybatis项目中,实现分页.因为我是后加入项目中的,Leader用的是PageHelper这个组件,但是我在实际使用的过程中遇到了2个大问题. 1.http://www.oschina. ...
- Mybatis学习---Mybatis分页插件 - PageHelper
1. Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,S ...
- Mybatis分页插件PageHelper的配置和使用方法
Mybatis分页插件PageHelper的配置和使用方法 前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分 ...
- 基于Mybatis分页插件PageHelper
基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 ...
- Mybatis分页插件-PageHelper的使用
转载:http://blog.csdn.net/u012728960/article/details/50791343 Mybatis分页插件-PageHelper的使用 怎样配置mybatis这里就 ...
- MyBatis 分页插件PageHelper 后台报错
今天遇到一个问题,使用MyBatis 分页插件PageHelper 进行排序分页后,能正常返回正确的结果,但后台却一直在报错 net.sf.jsqlparser.parser.ParseExcepti ...
- Mybatis分页插件PageHelper使用
一. Mybatis分页插件PageHelper使用 1.不使用插件如何分页: 使用mybatis实现: 1)接口: List<Student> selectStudent(Map< ...
- Java SSM框架之MyBatis3(三)Mybatis分页插件PageHelper
引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写count和select ...
- Mybatis分页插件PageHelper的实现
Mybatis分页插件PageHelper的实现 前言 分页这个概念在做web网站的时候很多都会碰到 说它简单吧 其实也简单 小型的网站,完全可以自己写一个,首先查出数据库总条数,然后按照分页大小分为 ...
随机推荐
- Android之旅十八 百度地图环境搭建
在android中使用百度地图,我们能够先看看百度地图对应的SDK信息:http://developer.baidu.com/map/index.php? title=androidsdk,它里面基本 ...
- windows下php+apache+mysql环境搭建
在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包. PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC ...
- Hibernate项目里配置环境时,jar包配置不当会对测试结果产生影响。
问题情况: 如下图所示,该图中,显示了一堆错误的jar包.这是导致了Junit4测试通过了,数据库却没反应的原因. 原因: 之所以出现这种情况,eclipse其实已经告诉了我们原因.如下图所示,这些j ...
- Intent 意图 结构 简介
Intent简介 官方解释: An intent is an abstract description of an operation操作 to be performed展示.表演. It can b ...
- BFC——块级格式上下文
BFC中的B指的是block,对应的还有IFC,I指的是inline.对于BFC的理解可以参考层叠上下文.页面中,盒子的排布规则,是生效在对应的BFC中.两个BFC中的布局互不影响.页面的本身的根本身 ...
- IE浏览器下a标签嵌套img标签默认带有边框
最近写在线主页时发现IE浏览器下a标签嵌套img标签默认带有边框: 解决办法:img{border:0 none;} 注意,严格意义上0和none都要加上!
- Collection使用方法
package cn.stat.p3.conection.demo; import java.util.ArrayList; import java.util.Collection; import j ...
- HIVE快速入门
(一)简单入门 1.创建一个表 create table if not exists ljh_emp( name string, salary float, gender string) commen ...
- Go语言之异常处理
在编写Go语言代码的时候,我们应该习惯使用error类型值来表明非正常的状态.作为惯用法,在Go语言标准库代码包中的很多函数和方法也会以返回error类型值来表明错误状态及其详细信息. error是一 ...
- jQuery+Ajax+PHP+Mysql实现分页显示数据
css <style type="text/css"> #loading{ position: absolute; top: 200px; left:400px; } ...