大批量数据批量入库时的边界问题
原代码块:
Int size = list.size();//假设size获取回来的size为10万
Log.info(“====excle表的size数:”+size);
Int count=5000;
If(size<count){
Log.info(“表中数据小于count的执行方法”);
UploadImpl.batchInsert(list);//实现类中入库操作
}else{
Int temp = size/count+1;
For(int = 0;i<temp ;i++){
If(i==temp-1){
List<List<String>> subList = list.subList(count*i,size);
uploadImpl.batchInsert(subList );//实现类中入库操作
}else{
List<List<String>> subList = list.subList(count*i,count*(i+1));
uploadImpl.batchInsert(subList );//实现类中入库操作
}
Log.info(“入库成功”+new Date());
}
}
场景:页面上传excle表,表中数据约10万,大家自己尝试的时候,搞少点,关键是后台逻辑输出数据的处理,避免出现空指针(空值)
目的:excle上传成功,数据入库成功。
ok,如果数据太大,我们自己用小数据,写一个main方法测试一下
大家应该发现问题了吧?
12除以2等于6,但是我们执行了多少次?
对的,我们执行记录有7次,那么怎么搞呢?
欢迎一起讨论。
补充效果图说明,两种解决办法:
God helps those who help themselves.
天助自助者!(美国人最喜欢的句子!)