Java服务端获取数据集合后,数据量过大,可以分批次批量来将数据保存到数据库中。
思路就是获取总的数据条数,和数据分页一样,每次执行一定数量的数据到数据库中
public int saveBatch(List<StatisticalTransactionEquipmentDay> dataList) throws Exception {
if (TekCollUtils.isEmpty(dataList)) {
throw new Exception("批量保存设备日交易流水数据时,数据集合为空");
}
// 循环保存 每次默认保存1000条数据到数据库
// 总数据条数
int totalCount = dataList.size();
// 获取总循环保存次数
int totalNum = NumberUtils.getTotalNum(totalCount);
// 批量保存数据
int flag = 0;
for (int i = 1; i <= totalNum; i++) {
// 开始
int startNum = (i - 1) * NumberUtils.TOTAL_PAGE_SIZE;
// 结束
int endNum = (totalNum == i) ? totalCount : startNum + NumberUtils.TOTAL_PAGE_SIZE;
// 截取集合结果
List<StatisticalTransactionEquipmentDay> dataPageList = dataList.subList(startNum, endNum);
// 7:批量保存交易流水
flag += statisticalTransactionEquipmentDayMapper.saveBatch(dataPageList);
}
if (flag == 0) {
throw new Exception("批量保存错误,原因为:保存数据库后,影响条数为0");
}
return flag;
}