博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用pageHelper遇到的问题
阅读量:5273 次
发布时间:2019-06-14

本文共 2294 字,大约阅读时间需要 7 分钟。

在做SSM整合的时候,遇到一个小问题,在我使用pageHelper的时候,分页的效果总是无法正确显示,卡了我几个小时,现在来说一下我的问题。

 1.首先导入pageHelper的包:

 

com.github.pagehelper
pagehelper
5.0.0

 

 

 

2.在mybatis-config.xml配置:

 

 

 

 

3.接下来开始测试:

测试代码:

@Testpublic void getAll(){PageHelper.startPage(1,5);List
list2 = employeeService.getAll();PageInfo
pi = new PageInfo<>(list2);System.out.println("当前页码:"+pi.getPageNum());System.out.println("总页码:"+pi.getPages());System.out.println("总记录数:"+pi.getTotal());}

 

测试结果:

发现结果并不是我所需要的,结果并没有分页,于是我在mapper层继续测试:

测试代码:

@Testpublic void getAll(){PageHelper.startPage(1,5);List
list2 = employeeMapper.selectByExampleWithDept(null);PageInfo
pi = new PageInfo<>(list2);System.out.println("当前页码:"+pi.getPageNum());System.out.println("总页码:"+pi.getPages());System.out.println("总记录数:"+pi.getTotal());}

 

测试结果:

结果正是我所需要的,既然mapper层没错,那么程序的问题就是service层出错了,service层代码如下:

public List
getAll() {//部门和员工一起查出来employeeMapper.selectByExampleWithDept(null);return employeeMapper.selectByExampleWithDept(null);}

 

我们可以发现,查询代码我查了两次,这就是导致我无法分页成功,于是我把 employeeMapper.selectByExampleWithDept(null)注释掉,再次查询就成功了

public List
getAll() {//部门和员工一起查出来// employeeMapper.selectByExampleWithDept(null);return employeeMapper.selectByExampleWithDept(null);}

 

4.总结一下使用pageHelper的注意点:

  • PageHelper.startPage(1,5);要放在查询语句的前面
  • PageHelper.startPage(1,10);只对该语句以后的第一个查询语句得到的数据进行分页,如果有两条查询语句,只对第一条查询语句生效,也就是 employeeMapper.selectByExampleWithDept(null);这条有效,而 employeeMapper.selectByExampleWithDept(null);没有生效,虽然查询出了所有数据,但是分页无效

再次做一个测试:

@Testpublic void getAll(){PageHelper.startPage(1,5);employeeMapper.selectByExampleWithDept(null);List
list2 = employeeMapper.selectByExampleWithDept(null);PageInfo
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); 注释后,分页又成功了

 

转载于:https://www.cnblogs.com/my12/p/10096076.html

你可能感兴趣的文章