递归查询全量分页数据问题

server/2024/12/29 4:05:56/

项目需要全量同步对方的用户机构数据,对方限制了分页条件,就需要递归全量拖过来。下面是实例代码:

java">// 最大条数
public abstract class BaseLoader<T> {private final static Integer PAGE_SIZE = 1000;private Class<T> tClass;private String uri;public BaseLoader(Class<T> tClass, String uri) {this.tClass = tClass;this.uri = uri;}protected List<T> loadDataArray() {List<T> dataArrayResult = new ArrayList<>();PageNum pageNum = new PageNum();doLoad(dataArrayResult, pageNum);return dataArrayResult;}// 递归分页查找,把所有数据抓过来private void doLoad(List<T> dataArrayResult, PageNum pageNum) {List<T> dataArray = doLoadDataArray(pageNum);if (ZYListUtils.isEmptyList(dataArray)) {return;}dataArrayResult.addAll(dataArray);// 比长度小,没得下一页了if (dataArray.size() < PAGE_SIZE) {return;}// 页数+1pageNum.nextPage();// 递归查询doLoad(dataArrayResult, pageNum);}private List<T> doLoadDataArray(PageNum pageNum) {String url = xxxProperties.getHost()+ uri;Map<String, Object> param = new HashMap<>();param.put("pageNum", pageNum.getPageNum());param.put("pageSize", PAGE_SIZE);JSONArray dataArray = post(url,param);return dataArray.toJavaList(tClass);}
}
java">public class PageNum {private int pageNum = 1;public int getPageNum() {return pageNum;}public void nextPage() {pageNum++;}
}

http://www.ppmy.cn/server/154094.html

相关文章

接口Mock技术介绍

相信学习过程序设计的读者朋友们&#xff0c;一定对“桩&#xff08;Stub&#xff09;”这个概念并不陌生。它是指用来替换一部分功能的程序代码段。桩程序代码段可以用来模拟已有程序的某些功或者是将实现的系统代码的一种临时替代方法。插桩方法被广泛应用于开发和测试工作中…

IP属地和所在地不一致什么意思?怎么换成另外一个地方的

在数字化时代&#xff0c;IP地址作为网络设备的唯一标识符&#xff0c;不仅关乎设备间的通信&#xff0c;还涉及到用户的网络身份与位置信息。然而&#xff0c;有时我们会发现&#xff0c;社交媒体或网络平台上显示的IP属地与用户的实际所在地并不一致。这种不一致现象引发了诸…

Java通过反射实现通用查询方法

JDBC连接数据库 public class BaseDao {protected Connection conn; // 连接对象protected PreparedStatement pstmt; // 执行对象protected ResultSet rs; // 结果集对象public Connection getConnection() {try {// 1、加载驱动 ctrl alt tClass.forName("com.m…

DS的使用

使用DS和[address]实现字的传送 要解决的问题:CPU从内存单元中要读取数据 要求&#xff1a;CPU要读取一个内存单元的时候&#xff0c;必须先给出这个内存单元的地址。 原理&#xff1a;在8086PC中&#xff0c;内存地址段地址和偏移地址组成(段地址:偏移地址) 解决方案 :DS和[a…

linux攻防

1. 实践内容 linux 系统结构 宏内核&#xff1b;抢占式多用户多进程模式&#xff1b;通过LKM装卸驱动&#xff0c;进程使用两套描述符分别访问内核态和用户态&#xff0c;用户态进程不可能访问3GB以上的地址空间&#xff08;虚存&#xff09;&#xff0c;通过系统调用或者中断…

【Java数据结构】LinkedList与链表

认识LinkedList LinkedList就是一个链表&#xff0c;它也是实现List接口的一个类。LinkedList就是通过next引用将所有的结点链接起来&#xff0c;所以不需要数组。LinkedList也是以泛型的方法实现的&#xff0c;所以使用这个类都需要实例化对象。 链表分为很多种&#xff0c;比…

王佩丰24节Excel学习笔记——第二十讲:图表基础

【以 Excel2010 系列学习&#xff0c;用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 课件图片有问题&#xff0c;不能随隐藏熟悉各个图表小部件的功能&#xff0c;需要修改都是选中右键进行更改。 一、认识图表中的元素 图表标题&#xff1a;主坐标&#xff08;横坐标&…

【Python】基于界面库PyQt5+Qt Dsigner的环境配置和界面绘制

目录 一 安装PyQt5以及PyQt5-tools 二 配置外部开发工具 三 使用Qt Designer设计界面 四 使用PyUIC将ui文件转换为py文件 五 CU分离实现逻辑代码 一 安装PyQt5以及PyQt5-tools 之前做的一些Python脚本、软件都是基于 Tkinter 实现的&#xff0c;其中界面的设计布局是很头疼…