pageinfo对合并list进行分页_pagehelper多表分页功能实现

当你搜索到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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 PageHelperList 进行分页,你可以按照以下步骤操作: 1. 首先,确保你已经在你的项目中引入了 PageHelper 依赖,如果是 Maven 项目,可以在 pom.xml 中添加以下依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>最新版本号</version> </dependency> ``` 2. 在需要进行分页的方法中,先设置分页参数。你可以使用 `PageHelper.startPage(pageNum, pageSize)` 方法来设置当前页码和每页显示的数据条数。例如: ```java int pageNum = 1; // 当前页码 int pageSize = 10; // 每页显示的数据条数 PageHelper.startPage(pageNum, pageSize); ``` 3. 然后,对需要分页List 进行查询操作。例如,如果你的 List 是从数据库中查询的结果,可以使用相应的查询方法获取数据列: ```java List<YourEntity> list = yourDao.selectList(); // 从数据库中查询数据列 ``` 4. 最后,通过 `PageInfo` 类来获取分页信息。将查询得到的 List 传入 `PageInfo` 的构造函数,并获取相关分页信息,如总记录数、总页数等: ```java PageInfo<YourEntity> pageInfo = new PageInfo<>(list); long total = pageInfo.getTotal(); // 总记录数 int pages = pageInfo.getPages(); // 总页数 List<YourEntity> pageList = pageInfo.getList(); // 当前页的数据列 ``` 通过以上步骤,你就可以使用 PageHelperList 进行分页了。注意,PageHelper 是基于拦截器实现的,所以需要在查询前设置分页参数,且对应的查询方法需要在设置分页参数后执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值