通过 jdbcTemplate.update(List) 更新 JdbcTemplate

Update JdbcTemplate by jdbcTemplate.update(List)

我正在使用 Spring 批处理。如何在单个数据库调用中更新所有记录?

@Autowired
private JdbcTemplate jdbcTemplate;

@Override
public void write(List<? extends Users> users) throws Exception {

    String updateQuery = "update users set ddp_created_fl=? where email=?";

    for(Users user:users) {
        jdbcTemplate.update(updateQuery, 1, user.getEmail());
    }
}

您可以使用 batchUpdate 在单个数据库调用中更新所有记录。

public void write(List<Users> users) throws Exception {
    String updateQuery = "update users set ddp_created_fl=? where email=?";

    jdbcTemplate.batchUpdate(updateQuery,
                new BatchPreparedStatementSetter() {

                    public void setValues(PreparedStatement ps, int i) 
                        throws SQLException {
                        ps.setLong(1, 1);
                        ps.setString(2, users.get(i).getEmail());
                    }

                    public int getBatchSize() {
                        return users.size();
                    }

                });
}