当前位置: 首页 > news >正文

分页查询示例

入参:

@DatapublicclassIndividualInvoiceRequest{/** * 当前查询页 */privateIntegerpageNum;/** * 每页要查询数量 */privateIntegerpageSize;//其他参数//......}

响应:

@DatapublicclassInvoiceCloudBodydata{/** * 总条数 */privateinttotal;/** * 当前页 */privateintpageNum;/** * 当前返回的条数 */privateintpageSize;/** * 列表数据 */privateList<SaleInvoiceResp>list;}

示例:

分页查询 indivadualInvoiceList 接口数据,每页20条,最终结果加入 result
,下面代码先查询一次获得总的条数,然后计算总的要查询的次数,再从第2页开始查起:

publicList<SaleInvoiceResp>listIndividualInvoice(IndividualInvoiceRequestrequest){List<SaleInvoiceResp>result=newArrayList<>();//每页查询数量intpageSize=20;request.setPageNum(1);request.setpageSize(pageSize);try{//先查询一次 indivadualInvoiceList 接口InvoiceCloudBodydataresponse=interClient.indivadualInvoiceList(request);if(Objects.nonNull(response)&&!CollectionUtils.isEmpty(response.getList())){//接口返回的总条数inttotal=response.getTotal();//结果加入resultresult.addAll(response.getList());//根据 total 和 pageSize计算总的要查询几次,向上取整intqueryTimes=(int)Math.ceil((double)total/pageSize);//从第2页开始查询for(intcurrentPageNum=2;currentPageNum<=queryTimes;currentPageNum++){//修改请求里的当前页request.setPageNum(currentPageNum);//查询InvoiceCloudBodydataresponseTemp=interClient.indivadualInvoiceList(request);if(Objects.nonNull(responseTemp)&&!CollectionUtils.isEmpty(responseTemp.getList())){//结果加入resultresult.addAll(responseTemp.getList());}}}}catch(Exceptione){thrownewBusinessException("查询异常");}returnresult;}

如果你能够查询到或者知道你总的要查询的数量,你可以计算出总的查询次数,然后从第一页开始查询:

publicList<SaleInvoiceResp>listIndividualInvoice(IndividualInvoiceRequestrequest){List<SaleInvoiceResp>result=newArrayList<>();//每页查询数量intpageSize=20;request.setPageNum(1);request.setpageSize(pageSize);try{//从数据库或者其他地方查询到的总数据量inttotal=10000;//根据 total 和 pageSize 计算总的要查询几次intqueryTimes=(total+pageSize-1)/pageSize//从第1页开始查询for(intcurrentPageNum=1;currentPageNum<=queryTimes;currentPageNum++){//修改请求里的当前页request.setPageNum(currentPageNum);//查询InvoiceCloudBodydataresponseTemp=interClient.indivadualInvoiceList(request);if(Objects.nonNull(responseTemp)&&!CollectionUtils.isEmpty(responseTemp.getList())){//结果加入resultresult.addAll(responseTemp.getList());}}}catch(Exceptione){thrownewBusinessException("查询异常");}returnresult;}
http://www.gsyq.cn/news/1296864.html

相关文章:

  • Simulink建模规范:从MAAB规范到工程实践,打造高质量模型
  • EPLAN_进阶#自定义导航器显示列与信息规划
  • 媚上者掌权,实干者退场
  • 电赛电源题实战:手把手教你用IR2103和STM32搭建单相PWM整流硬件(附PCB白嫖技巧)
  • 网安必备基础 计算机网络(中)基础必备知识简概
  • 基础实战:实现简单的图像轮廓检测(入门级)
  • 工业自动化工程师如何高效解决Modbus通信调试难题?
  • 微信小程序流式请求实战:绕过WebSocket,实现ChatGPT逐字回复的兼容方案
  • 别再搞混了!PCIe设计里那个100MHz时钟,到底给谁用的?(附同源时钟架构布线避坑指南)
  • 通过curl命令直接测试Taotoken多模型API的响应与延迟
  • Go语言设计模式:行为型模式
  • LabVIEW生产者消费者模式:队列解耦与多任务架构实战
  • 天地协同:卫星如何成为5G物联网“组合拳”的关键一环
  • 初创公司如何用Taotoken统一管理多个AI应用接口
  • 开发者在混合云环境中借助Taotoken简化大模型运维
  • 主流原型设计工具介绍
  • JavaScript 异步(Promise)
  • 初创公司如何利用taotoken快速低成本验证多个大模型产品创意
  • 第4章 部署负载均衡 Keepalived + HAProxy
  • macOS外接显示器控制终极指南:轻松掌控亮度与音量的完整方案
  • 深度解析:如何通过MonitorControl实现macOS外接显示器硬件级控制
  • 三步完成Node.js应用在虚拟机内对接Taotoken多模型服务
  • 从“全量发布”到“小步快跑”:灰度发布的简单实践与学习路径
  • Claude终端集成工具:提升开发效率的AI命令行助手实现
  • 鸿蒙OpenHarmony特性配置:连接系统与硬件的核心裁剪技术
  • AI开发者如何快速接入多模型服务,五分钟搞定Python调用示例
  • GitHub Pages静态网站搭建:从Hugo生成器到自动化部署全流程
  • Mermaid Live Editor:免费实时图表编辑器终极指南,让技术绘图简单到令人惊叹
  • 常见 PE 启动盘
  • 5分钟解锁B站大会员4K视频下载!这个开源工具让你轻松收藏任何B站内容