当前位置 博文首页 > RemainderTime:优化(一)mysql批量分段入库
//注入service
@Autowired
private StoreSalesRankingService storeSalesRankingService;
//添加对象集合
List<StoreSalesRanking> insertList =new ArrayList<>();
//更新对象集合
List<StoreSalesRanking> updateList =new ArrayList<>();
......
//业务逻辑,分别插入到对应的list集合中
......
//批量插入
if(CollectionUtil.isNotEmpty(insertList)){//判空
int segmentLimit = 20;//默认数据条数
while (insertList.size()>segmentLimit){ //分段入库,解决数据大sql超长出错的问题
List<StoreSalesRanking> segData = insertList.subList(0,segmentLimit);
storeSalesRankingService.saveBatch(segData);
//清除本次操作完成的对象
insertList.subList(0,segmentLimit).clear();
}
//操作不满默认数据条数,剩余的数据
storeSalesRankingService.saveBatch(insertList);
}
//批量更新
if(CollectionUtil.isNotEmpty(updateList)){
int segmentLimit = 20;
while (updateList.size()>segmentLimit){
List<StoreSalesRanking> segData = updateList.subList(0,segmentLimit);
storeSalesRankingService.updateBatchById(segData);
updateList.subList(0,segmentLimit).clear();
}
storeSalesRankingService.updateBatchById(updateList);
}
哈哈,完成,不要忘了一键三连,支持支持博主呀。
cs