最近要使用excel导入数据,在保存的时候,发现还是有保存瓶颈的.
简单查了下,发现jfinal是自带有批量保存的.所以基于项目实际情况做了简单的二次封装,喜欢就做参考.直接上代码:
200是可变的,即可以根据项目的需求设置为500,1000or其他.有问题可及时沟通.
/**
* 批量保存
*
* @param modelList
*/
public void batchSave(List modelList) {
// 判断list的大小,如果大于200条,则size/200分批次保存
int size = modelList.size();
if (200 >= size) {
Db.batchSave(modelList, size);
return;
}
int serial = size / 200;
for (int i = 0; i < serial; i++) {
Db.batchSave(modelList.subList(i * 200, i * 200 + 200), 200);
}
int remain = size - serial * 200;
Db.batchSave(modelList.subList(serial * 200, size), remain);
}
}