【发布时间】:2026-02-19 23:30:02
【问题描述】:
我需要一次性在数据库中插入数千条记录。我在我的应用程序中使用 spring JDBC 模板。
下面是我到目前为止编写的代码,它一次性执行所有插入。因此,如果我有 10,000 个用户,他们会一次性插入。但我想要的是分批执行它们,例如一批 500 条记录,依此类推。
@Override
public void saveBatch(final List<Employee> employeeList) {
final int batchSize = 500;
getJdbcTemplate().batchUpdate(QUERY_SAVE,
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i)
throws SQLException {
Employee employee = employeeList.get(i);
ps.setString(1, employee.getFirstname());
ps.setString(2, employee.getLastname());
ps.setString(3, employee.getEmployeeIdOnSourceSystem());
}
@Override
public int getBatchSize() {
return employeeList.size();
}
});
}
如何更改上面的代码,以便我们可以将批量大小设置为 500,而不是 employeeList.size() 作为批量大小,执行它们,然后执行下一个 500 等等?
请帮忙。
【问题讨论】:
-
我知道这个问题已经很老了,但我有一个问题。为什么不在
getBatchSize方法中直接返回 500?
标签: spring-jdbc