当前位置: 首页 > 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.jsqmd.com/news/830421/

相关文章:

  • 网安必备基础 计算机网络(中)基础必备知识简概
  • 精细化管控便民设施|彩格尔无障碍通道 入驻北京、上海、青岛、苏州多座城市 - GrowthUME
  • GPU Burn终极指南:如何快速检测GPU稳定性的完整教程
  • 终极指南:3小时免费快速掌握LAMMPS分子动力学模拟
  • 探索OpenBoardView:硬件工程师的PCB分析利器
  • 保姆级教程:在Spring Boot项目里正确配置Hutool和BouncyCastle搞定SM4国密加密
  • 实测Taotoken多模型聚合路由能力,在不同负载下的响应延迟体感
  • JavaScript 异步编程终极语法(async/await )
  • 物业临时工排班管理的技术破局:栎偲考勤神器的AI与离线方案详解
  • 告别DLL缺失困扰:Visual C++运行库一站式解决方案
  • Doramagic开源工具箱:开发者效率提升的模块化实践
  • 冰狐冷冻油 | 18年专注制冷压缩机冷冻油源头工厂/代工贴牌/OEM/ODM - 新闻快传
  • 如何使用ubuntu搭建一个无盘PC启动服务器
  • 【Appium 系列】第11节-Toast+弹窗处理 — 移动端最让人头疼的几种弹窗
  • 主流原型设计工具介绍
  • AI开发者如何快速接入多模型服务,五分钟搞定Python调用示例
  • macOS外接显示器控制终极指南:轻松掌控亮度与音量的完整方案
  • 别再只会用DC-DC了!手把手教你用SPX3819这类LDO芯片,搞定5V转3.3V的电路设计(附外围电路图)
  • 2026最权威的六大AI辅助论文神器推荐榜单
  • 深度解析:如何通过MonitorControl实现macOS外接显示器硬件级控制
  • 冰狐冷冻油替换开利/汉钟/约克/比泽尔/麦克维尔/复盛/顿汉布什/特灵/莱富康/克莱门特/神钢/丹佛斯/日立/冰轮/冰山制冷压缩机冷冻油平替型号全表 - 新闻快传
  • C++、汇编与易语言:三大编程语言深度对比
  • 【Appium 系列】第12节-智能路由 — API测试 vs UI 测试的自动选择
  • 模型逆向攻击(MIA)实战剖析:从原理到攻防演进
  • 忘记压缩包密码怎么办?3步找回加密文件的完整免费解决方案
  • KUKA机器人FSoE安全地址丢了别慌!手把手教你用WorkVisual手动找回(附KRC4标准柜地址表)
  • 如何选择适合你的双向拉绳开关?2026最新评测与选购指南 - 新闻快传
  • 从LED点阵到动态动画:基于ESP32的万圣节创意显示项目实战
  • wxhelper终极实战:深度揭秘微信逆向工程完整解决方案
  • 微信小程序wx.navigateTo传参实战:从基础到动态数据绑定