public class DbInsertTask implements Runnable {
private List
将要插入的数据按照指定的批次大小分割成多个小批次,并将每个小批次提交给线程池处理。
int batchSize = 1000; // 每个小批次的大小
List data = new ArrayList<>(); // 数据列表
for (int i = 0; i < totalRows; i++) {
if (i % batchSize == 0 && i > 0) {
executor.execute(new DbInsertTask(data, conn)); // 执行插入任务
data = new ArrayList<>();
}
Object[] row = new Object[] {col1Val, col2Val}; // 构造数据行
data.add(row);
}
if (data.size() > 0) {
executor.execute(new DbInsertTask(data, conn)); // 处理剩余数据
}
executor.shutdown(); // 关闭线程池