Java 通过JdbcTemplate.Update更新JdbcTemplate(列表)
我使用的是Spring批处理。如何更新单个数据库调用中的所有记录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
@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次。