背景:一次做mybatis同步数据中,比对数据后AB表的变动很大,需要批量保存大量差异数据
问题:直接导致超过oracle64k的限制
解决方案:批次插入
代码:因为没什么业务转换逻辑,直接save查询出来的list。我这里分1000条一次插入。
ArrayList addList = new ArrayList(1000);
for (SysOperatorEntity sysOperatorEntity : sysOperatorEntitys) {
addList.add(sysOperatorEntity);
if(addList.size() == 1000){
iSyncSysOperatorDao.save(addList);
addList.clear();
}
}
if(CollectionUtils.isEmpty(addList)){
iSyncSysOperatorDao.save(addList);
}