自定义批量执行方法
executeBatch(this.commonManagementMapper, "addStatisticsByBatch", insertlist);
/**
* 分次批量入库
*
* @param mapper
* @param mapperMethodName
* @param list
* @throws Exception
*/
public static void executeBatch(Object mapper, String mapperMethodName, List<?> list) throws Exception {
if (list.isEmpty())
return;
try {
Method method = mapper.getClass().getMethod(mapperMethodName, List.class);
int size = list.size();
if (size > BATCH_MAX) {
int num = (size) / BATCH_MAX + 1;
int start = 0, end = 0;
for (int i = 1; i <= num; i++) {
start = (i - 1) * BATCH_MAX;
end = (i * BATCH_MAX) > size ? size : (i * BATCH_MAX);
method.invoke(mapper, list.subList(start, end));
}
} else
method.invoke(mapper, list);
} catch (Exception e) {
throw e;
} finally {
list.clear();
}
}