mybatis—PageHelper分页失效问题

当PageHelper分页失效时,可以看一下PageHelper开启startPage后是否查询了多个list,是否在通过多个mapper.xml方法返回了多个list。
PageHelper.startPage(page,rows);
eg:
错误的情况:
开始分页的时候下面查询了2个list

 PageHelper.startPage(page,rows);
        if (StringUtils.isNotBlank(FB) && StringUtils.isBlank(startDate) && StringUtils.isBlank(endDate)){
            List<SysDate> sysDateList = sysDateMapper.queryDateForFB(FB);
            if (!sysDateList.isEmpty()){
                startDate = sysDateList.get(0).getDate().concat(" 00:00");
                endDate = sysDateList.get(sysDateList.size()-1).getDate().concat(" 23:59");
                 List<PmsTimeTrack> list = pmsTimeTrackMapper.queryPmsTimeTrack(startDate,endDate);
            }else {
                throw new BizException(Code.ERR_OTHER);
            }
 }
  if(list!=null&&list.size()>0){
            PageInfo pageInfo = new PageInfo(list);
            result.setCount(pageInfo.getTotal());
            result.setList(pageInfo.getList());
        }

正确的情况:
在专一的list开启分页。


        if (StringUtils.isNotBlank(FB) && StringUtils.isBlank(startDate) && StringUtils.isBlank(endDate)){
            List<SysDate> sysDateList = sysDateMapper.queryDateForFB(FB);
            if (!sysDateList.isEmpty()){
                startDate = sysDateList.get(0).getDate().concat(" 00:00");
                endDate = sysDateList.get(sysDateList.size()-1).getDate().concat(" 23:59");
                 PageHelper.startPage(page,rows);
                 List<PmsTimeTrack> list = pmsTimeTrackMapper.queryPmsTimeTrack(startDate,endDate);
            }else {
                throw new BizException(Code.ERR_OTHER);
            }
 }
  if(list!=null&&list.size()>0){
            PageInfo pageInfo = new PageInfo(list);
            result.setCount(pageInfo.getTotal());
            result.setList(pageInfo.getList());
        }

同样也可以手写分页:

        int total = list.size();
        //pageHelper无效,手动分页,流操作:sorted排序、skip跳记录和limit限制显示记录数
        List<PmsTimeTrack> collect = list
                .stream()
                .skip((page - 1) * rows)
                .limit(rows)
                .collect(Collectors.toList());
        //计算总页数
        int pageSum = total % rows == 0 ? total / rows : total / rows + 1;
        PageHelper.startPage(page, rows);
        PageInfo<PmsTimeTrack> scorePageInfo = new PageInfo<>(collect);
        //总记录数
        scorePageInfo.setTotal(total);
        //总页数
        scorePageInfo.setPages(pageSum);
        //清除分页缓存
        PageHelper.clearPage();
        return scorePageInfo ;

手写分页原文连接](https://blog.csdn.net/Da_zhenzai/article/details/127864051)
请添加图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值