我已经看到了使用ArrayList进行如下批量更新的代码:
@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
如何使用它来更新记录?
只需List<?>
从地图值中创建出来,即可使用已发布的相同代码:
List<VerifyPaymentRO> verifyPaymentList = new ArrayList<>(verifyPaymentInfoMap.values());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句