2
я видел код для пакетного обновления, как показано ниже, используя ArrayList:пакетного обновления с использованием JdbcTemplate весной
@Override
public void saveBatch(final List<Employee> employeeList) {
final int batchSize = 500;
for (int j = 0; j < employeeList.size(); j += batchSize) {
final List<Employee> batchList = employeeList.subList(j, j + batchSize > employeeList.size() ? employeeList.size() : j + batchSize);
getJdbcTemplate().batchUpdate(QUERY_SAVE,
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i)
throws SQLException {
Employee employee = batchList.get(i);
ps.setString(1, employee.getFirstname());
ps.setString(2, employee.getLastname());
ps.setString(3, employee.getEmployeeIdOnSourceSystem());
}
@Override
public int getBatchSize() {
return batchList.size();
}
});
}
}
, но если я использую Hashmap как ниже: HashMap<String, VerifyPaymentRO> verifyPaymentInfoMap
VerifyPaymentRO
является Java Bean
Как использовать его для обновления записи?
Он работал хорошо, как я ожидал, как теперь вернуть статус, как будет ли сделано обновление или не смогли?? +1 за ваше сообщение спасибо. –
Ну, если это не удается, будет исключено исключение во время выполнения. Если вы хотите пропустить неудачные партии, вам также нужно будет заботиться о вашей обработке транзакций (т. Е. Каждая партия должна запускаться в своей собственной транзакции, чтобы ее можно было отбросить), проверьте распространение TransactionTemplate и 'REQUIRES_NEW'. –