天天看点

(转)jdbcTemplate批量更新操作

public void batchUpdate(final List<Student> students) {
        String sql = "update Student set age = ? where id = ?";
        int[] updateCounts = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
            public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
                System.out.println("i = " + i);
                preparedStatement.setInt(1, students.get(i).getAge());
                preparedStatement.setInt(2, students.get(i).getId());
            }
            public int getBatchSize(){
                return students.size();
            }
        });
        System.out.println("Records updated!");      

 在上面语法中 -

    SQL - 更新语句以更新学生的年龄。

    BatchPreparedStatementSetter - 批量执行者,在PerparedStatement对象中设置每个项目的值,由学生对象和索引i列出。 getBatchSize()返回批处理的数量。