当你搜索到pagehelper多表分页实现的时候,我想你对mybatis pagehelper插件的整合与使用已经没有问题了,你遇到的问题应该是List分页数据来源于多张表的时候,pagehelper分页失效了,所以本文只讲述pagehelper多表分页与普通分页细节上的区别。
其实分不了页的原因很简单,因为List数据来源于多张表的时候,PageInfo对象里面的getTotal()方法获取的条数并不是数据总条数,而是每页的条数pagesize,所以你发现列表数据永远都是只有一页数据,下面会介绍解决办法。
先看看正常pagehelper分页,如serviceImpl里面的代码://根据用户id获取考试信息列表
public PageInfo findExamByUserIdAndPageAndPageSize(Long userId, int currPage, int pageSize) {
PageHelper.startPage(currPage, pageSize);
List list = examMapper.selectByUserId(userId);
return new PageInfo(list);
}
note:上面这样是可以正常分页的,PageInfo.getTotal()方法获取的就是总条数,例如每页pageSize显示10条数据,总条数是18条,那么getTotal()方法获取的值就是18条数据。
如果把上面的代码改一下,假如List数据来源于多张表,或者对List列表里面的数据做出了修改,那么分页就会失效,请看代码:public PageInfo findExamByUserIdAndPage