使用pageHelper遇到的问题
在做SSM整合的时候,遇到一个小问题,在我使用pageHelper的时候,分页的效果总是无法正确显示,卡了我几个小时,现在来说一下我的问题。
1.首先导入pageHelper的包:
- <!--引入pageHelper分页插件 -->
- <dependency>
- <groupId>com.github.pagehelper</groupId>
- <artifactId>pagehelper</artifactId>
- <version>5.0.</version>
- </dependency>
2.在mybatis-config.xml配置:
- <plugins>
- <plugin interceptor="com.github.pagehelper.PageInterceptor">
- <!--分页参数合理化 -->
- <property name="reasonable" value="true"/>
- </plugin>
- </plugins>
3.接下来开始测试:
测试代码:
- @Test
- public void getAll(){
- PageHelper.startPage(,);
- List<Employee> list2 = employeeService.getAll();
- PageInfo<Employee> pi = new PageInfo<>(list2);
- System.out.println("当前页码:"+pi.getPageNum());
- System.out.println("总页码:"+pi.getPages());
- System.out.println("总记录数:"+pi.getTotal());
- }
测试结果:
发现结果并不是我所需要的,结果并没有分页,于是我在mapper层继续测试:
测试代码:
- @Test
- public void getAll(){
- PageHelper.startPage(,);
- List<Employee> list2 = employeeMapper.selectByExampleWithDept(null);
- PageInfo<Employee> pi = new PageInfo<>(list2);
- System.out.println("当前页码:"+pi.getPageNum());
- System.out.println("总页码:"+pi.getPages());
- System.out.println("总记录数:"+pi.getTotal());
- }
测试结果:
结果正是我所需要的,既然mapper层没错,那么程序的问题就是service层出错了,service层代码如下:
- public List<Employee> getAll() {
- //部门和员工一起查出来
- employeeMapper.selectByExampleWithDept(null);
- return employeeMapper.selectByExampleWithDept(null);
- }
我们可以发现,查询代码我查了两次,这就是导致我无法分页成功,于是我把 employeeMapper.selectByExampleWithDept(null)注释掉,再次查询就成功了
- public List<Employee> getAll() {
- //部门和员工一起查出来
- // employeeMapper.selectByExampleWithDept(null);
- return employeeMapper.selectByExampleWithDept(null);
- }
4.总结一下使用pageHelper的注意点:
- PageHelper.startPage(1,5);要放在查询语句的前面
- PageHelper.startPage(1,10);只对该语句以后的第一个查询语句得到的数据进行分页,如果有两条查询语句,只对第一条查询语句生效,也就是 employeeMapper.selectByExampleWithDept(null);这条有效,而 employeeMapper.selectByExampleWithDept(null);没有生效,虽然查询出了所有数据,但是分页无效
再次做一个测试:
- @Test
- public void getAll(){
- PageHelper.startPage(,);
- employeeMapper.selectByExampleWithDept(null);
- List<Employee> list2 = employeeMapper.selectByExampleWithDept(null);
- PageInfo<Employee> pi = new PageInfo<>(list2);
- System.out.println("当前页码:"+pi.getPageNum());
- System.out.println("总页码:"+pi.getPages());
- System.out.println("总记录数:"+pi.getTotal());
- }
结果:
查询结果没有分页,也就是PageHelper.startPage(1,5); 对 employeeMapper.selectByExampleWithDept(null);生效,
而List<Employee> list2 = employeeMapper.selectByExampleWithDept(null); 没有生效,当把 employeeMapper.selectByExampleWithDept(null); 注释后,分页又成功了
使用pageHelper遇到的问题的更多相关文章
- PageHelper简单实用
mybatis-config.xml配置如下: <!-- 分页插件 --> <plugins> <plugin interceptor="com.github. ...
- springboot使用之二:整合mybatis(xml方式)并添加PageHelper插件
整合mybatis实在前面项目的基础上进行的,前面项目具体整合请参照springboot使用之一. 一.整合mybatis 整合mybatis的时候可以从mybatis官网下载mybatis官网整合的 ...
- 理解 Mybatis的分页插件 PageHelper
Mybatis + SpringMVC + Maven实现分页查询 (推荐采用的插件是PageHelper) 先看一下之前的这篇博客,这里推荐了 Mybatis 的分页方法. 按照上面的方法设置后,确 ...
- Spring + Mybatis 使用 PageHelper 插件分页
原文:http://www.cnblogs.com/yucongblog/p/5330886.html 先增加maven依赖: <dependency> <groupId>co ...
- Mybatis的分页插件PageHelper
Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschina. ...
- mybatis分页插件PageHelper的使用(转)
Mybatis 的分页插件PageHelper-4.1.1的使用 Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_P ...
- MyBatis学习总结_17_Mybatis分页插件PageHelper
如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...
- Spring集成PageHelper的简单用法
1.Maven依赖,注意使用PageHelper时的版本必须与Mybatis版本对应 <!-- 添加Mybatis依赖 --> <dependency> <groupId ...
- Mybatis分页插件PageHelper正确的用法(网上有2篇不够科学的文章)
今天下午在Mybatis项目中.实现分页.由于我是后加入项目中的,Leader用的是PageHelper这个组件.可是我在实际使用的过程中遇到了2个大问题. 1.p=2#comments" ...
- maven+springmvc+easyui+fastjson+pagehelper
1.maven配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
随机推荐
- 使用DBMS_SCHEDULER包管理计划任务
Dbms_scheduler是Oracle提供创建计划任务的包,任务类型可以是执行PL\SQL程序.执行外部脚本.调用操作系统命令,通常用于创建定期定时的任务,不依赖操作系统,保存在数据库内,数据库迁 ...
- Java操作XML的工具:JAXB
JavaArchitecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...
- Mac os安装DVWA环境教程
Mac os安装DVWA环境教程 1.尽管Mac自带Apache和php 事实上Mac和WIN都用XAMPP一键化安装比较方便 2.解压DVWA-master 改名为dvwa移动到XAMPP的目录 3 ...
- [GO]并发实现聊天室服务器
package main import ( "net" "fmt" "strings" "time") type Cli ...
- mvc中使用Hangfire处理后台任务
考虑下如下代码,在数据保存后,需要发送邮件,发送邮件是个耗时的工作. 我们的目的是,数据保存成功后,就可以返回响应了,发送邮件不重要,不需要等待邮件发送成功 [HttpPost] public Act ...
- OpenCV实现pHash哈希
离散余弦变换(DCT,Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT,Discrete Fourier Transform),但是只使 ...
- unittest对单个测试类的多种测试执行方法总结
基于unittest测试框架编写的测试脚本,一般单个测试类下会有多个测试方法,unittest也提供多种测试执行方式,下面就不同方式或者需求一一实操并说明: 一.使用unittest下main()方法 ...
- 学习python2
字符串遍历 列表遍历 元组遍历 字典遍历 <1> 遍历字典的key(键) <2> 遍历字典的value(值) <3> 遍历字典的项(元素) <4> 遍历 ...
- 用JAVA实现无等待数据库连接池
我们都知道数据库连接是一种有限和非常昂贵的应用资源,怎样对这些资源进行高效的管理,能有效的改善整个系统的性能和健壮性.数据库连接池正是针对这个问题而提出来的. 数据库连接负责分配.释放和管理数据库连接 ...
- 一类适合初学者的DP:最大子段和与最大子矩阵
最近在水简单DP题,遇到了两道层层递进的DP题,于是记录一下 一.最大子段和 题意: 给出一个长度为n(n<=1e5)的序列,求连续子段的最大值 比如说2 3 -4 5 的最大值是6 而 2 ...