Java 通过JdbcTemplate.Update更新JdbcTemplate(列表)

Java 通过JdbcTemplate.Update更新JdbcTemplate(列表),java,spring,spring-boot,jdbctemplate,Java,Spring,Spring Boot,Jdbctemplate,我使用的是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(Us

我使用的是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());
    }
}
@Autowired
私有JdbcTemplate JdbcTemplate;
@凌驾

public void write(List您可以使用
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();
                    }

                });
}
public void write(列出用户)引发异常{
String updateQuery=“更新用户设置ddp\U创建的\U fl=?其中电子邮件=?”;
jdbcTemplate.batchUpdate(updateQuery,
新的BatchPreparedStatementSetter(){
公共无效设置值(准备的声明ps,int i)
抛出SQLException{
ps.setLong(1,1);
ps.setString(2,users.get(i).getEmail());
}
public int getBatchSize(){
返回users.size();
}
});
}

ps.setString(2,user.getEmail())
不编译,您如何从userwrite方法获取getEmail的用户列表,是否正在迭代?您如何获取user.GetXX您不需要迭代。请检查更新答案。使用此代码可以获得比我要求的更好的性能吗?batchUpdate将比update更快,因为您只需连接到数据库一次,而不是一次n个记录n次。