Tôi cần chèn hàng nghìn bản ghi vào cơ sở dữ liệu tại một thời điểm. Tôi đang sử dụng mẫu JDBC mùa xuân trong ứng dụng của mình.Làm cách nào để thực hiện nhiều lần chèn trong cơ sở dữ liệu bằng cách sử dụng hàng loạt Mẫu JDBC mùa xuân?
Dưới đây là mã tôi đã viết cho đến nay, thực hiện tất cả các lần chèn tại một lần. Vì vậy, nếu tôi ahve 10.000 người dùng họ được chèn vào một lần. Nhưng những gì tôi muốn là để thực hiện chúng theo lô nói ví dụ 500 hồ sơ trong một lô và như vậy.
@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();
}
});
}
Làm thế nào để thay đổi mã ở trên để thay vì employeeList.size() như kích thước hàng loạt, chúng tôi có thể có kích thước hàng loạt như nói 500, thực hiện chúng và sau đó tiếp theo 500 và vân vân?
Vui lòng trợ giúp.
Tôi biết câu hỏi này là khá cũ, nhưng tôi có một câu hỏi. Tại sao bạn không trả lại 500 trong phương thức 'getBatchSize'? –