//按每3个一组分割
private static final Integer MAX_SEND = 100;
/**
* 计算切分次数
*/
private static Integer countStep(Integer size) {
return (size + MAX_SEND - 1) / MAX_SEND;
}
//部分数据量太大,切割后插入
int limit = countStep(detailList.size());
List<List<QmsStepCheckDetail>> splitList = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> detailList.stream().skip(a * MAX_SEND).limit(MAX_SEND).parallel().collect(Collectors.toList())).collect(Collectors.toList());
for (List<QmsStepCheckDetail> checkDetails : splitList) {
String sql = EntityToSqlUtil.convertInsertSql(checkDetails);
entityManager.createNativeQuery(sql).executeUpdate();
}
Java 分割List数据
最新推荐文章于 2024-07-13 02:59:29 发布
该代码段展示了如何处理大量数据,通过将数据集按每100个一组分割,然后并行处理和插入到数据库中,使用了Java的Stream和Collectors功能。这种方法可以避免一次性加载过多数据导致的性能问题。
摘要由CSDN通过智能技术生成