栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

用于pageHelper无法使用状态下的自定义分页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用于pageHelper无法使用状态下的自定义分页

        这是自己的第一篇博客,从学校出来已经两个月了,从接触java开始也有近两年了,自己一个学地信的人能够在短时间转方向到开发,并且找到了一份开发的工作还是很满足的。从现在开始,我的博客就用来记录一下自己遇到的问题和解决的方法并分享出来。希望对有遇到相同情况的码友可以有些许帮助。同时也希望自己能够持之以恒坚持下去吧。

        首先这是一次在项目中出现的问题,业务找到我说页面中分页失灵了,查出来的数据一股脑的全部显现出来,公司使用的数据库是Oracle,在分页上一般都会使用PageHelper这个分页方法,在检查bug中我发现,上一位编写者并没有写分页相关的代码,于是我将PageHelper运用在了serviceImp中,但是并没有解决这个问题。

if (StringUtils.isNotEmpty(vo.getInstructionNum())) {
    PageHelper.startPage(page, pageSize);//加入的分页
    return this.queryByInstructionNum(iRequest, vo);
}

        出现这个问题的原因是因为PageHelper适用于一条sql查询的情况,而在项目中,我却遇到的是很多条单表查询后返回的一个list集合,故而PageHelper它失灵了。

        于是我找到了另一种分页的方式,使用java8的新特性进行了分页,这样完美的解决了我存在的问题,但是同时,方法的返回值也进行了改变。

public ResponseData MaterialTraceGet(IRequest iRequest, MaterialTraceVO vo, int page, int pageSize) {
        ResponseData responseData = new ResponseData();
        responseData.setSuccess(true);
        List materialTraceVOList;
        //逆向追溯
        materialTraceVOList= this.materialLotBackwardTraceQuery(iRequest, vo);
        List newResult = materialTraceVOList.stream().skip(pageSize * (page - 1)).limit(pageSize).collect(Collectors.toList());

        //自定义分页
        
        responseData.setRows(newResult);
        responseData.setTotal(Long.valueOf(materialTraceVOList.size()));
        return responseData;
    }

        这样完美的解决了PageHelper无法分页的问题

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039061.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号