天天看點

(轉)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()傳回批處理的數量。