/**
* 切分查询
* @param phoneList 集合
* @return
*/
private List<PhoneNumberOperatorVO> queryOperator(List<String> phoneList) {
int size = phoneList.size();
int batchSize = 100; // 切割大小
int batchCount = (size + batchSize - 1) / batchSize; // 计算需要分多少次查询
List<PhoneNumberOperatorVO> exportList = new ArrayList<>();
for (int i = 0; i < batchCount; i++) {
int startIndex = i * batchSize; // 当前批次查询的起始索引
int endIndex = Math.min(startIndex + batchSize, size); // 当前批次查询的结束索引
List<String> batchPhoneList = phoneList.subList(startIndex, endIndex); // 当前批次的电话列表
List<PhoneNumberOperatorVO> batchResult = ctSegmentNumberInfoMapper.queryOperatorList(batchPhoneList); // 查询当前批次的记录
exportList.addAll(batchResult); // 将当前批次的结果添加到总结果列表中
}
return exportList;
}
Java大批量查询 切割 切分 分批次查询
分批查询算法在电话号码操作中的实现
于 2023-11-20 16:22:44 首次发布
该方法描述了一个技术场景,通过参数phoneList对电话号码进行切分,将大列表分成多个小批量(每100个),然后使用ctSegmentNumberInfoMapper进行分批查询,最后合并所有查询结果返回PhoneNumberOperatorVO对象列表。
322

被折叠的 条评论
为什么被折叠?



