Java分页查询接口实现:根据所有返回数据手动分页_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java分页查询接口实现:根据所有返回数据手动分页

Java分页查询接口实现:根据所有返回数据手动分页

更新时间:2022-06-20 10:03:07 来源:极悦 浏览5675次

极悦小编告诉大家,在某些情况下,当我们调用第三方接口时,他们的接口会进行分页,但是并不能满足我们的需求。然后我们需要自己做分页处理。总体思路是:

第一步:获取第三方接口调用返回的所有结果(可以循环获取)。具体例子请参考Step1。您应该根据自己的实际情况进行调整和修改。

第二步:根据返回值进行分页(调用方法Step2)。同时写了一个分页工具(Step3)供大家参考

Step1:循环获取第三方接口的所有数据

            int pageIndex = 0;
            int pageSize = 50;
//循环,分页获取所有数据并返回结果
            做{
                页面索引++;
//分页第三方接口的输入参数
                requestType.pageInfo = new SoaPageInfoDto();
                requestType.pageInfo.pageIndex = pageIndex;
                requestType.pageInfo.pageSize = pageSize;
//调用第三方接口
                soaRep = CreditCardOfflineSoaSrvClient.getInstance().queryTrainTicketUserStandardListNew(requestType);
                if(soaRep == null || soaRep.queryUserInfoList == null){
                    休息;
                }
                结果列表.add(soaRep);
            }while ((pageSize*pageIndex) <soaRep.pageDto.pageCount);/*循环结束条件是当前查询数大于返回结果数*/

Step2 : 在返回结果前手动分页

            if (activityInfoList != null && activityInfoList.size()> 0) {
              //实际请求的pageIndex和pageSize
                int start = (req.pageIndex -1) * req.pageSize;
                int end = req.pageIndex * req.pageSize;
                response.activityInfos = PageHandleUtil.handlePage(activityInfoList, start, end);
            }

Step3(PageHandleUtil工具类):

公共类 PageHandleUtil {
    公共静态 <T> List<T> handlePage(List<T> source, int start, int end){
        int 总计 = source.size();
        结束=结束>总计?总计:结束;
        如果(结束<=开始){
            返回空值;
        }
        返回源.subList(开始,结束);
    }
}

以上情况是项目实际应用中遇到的问题及解决方法。大家如果想了解更多相关知识,可以关注一下极悦的Java视频教程,里面的课程内容从入门到精通,细致全面,通俗易懂,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>