繁体   English   中英

在春季使用jdbcTemplate进行批量更新

[英]batch update using jdbcTemplate in spring

我已经看到了使用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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM