public void updateStudent(final List<Student> list){
/* 一般將這裏的sql定義爲類變量 */
final String sql = "UPDATE TABLE_NAME
SET
STU_NAME = ?,
STU_AGE = ?
WHERE STU_NO = ?";
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter(){
// 指定該批的數據大小
public int getBatchSize(){
return list.size();
}
public void setValues(PreparedStatement ps, int i) throws SQLException {
Student student = list.get(i);
ps.setString(1, student.getName); // 注意這裏是從1開始(有點彆扭)
ps,setInt(2, student.getAge);
ps.setString(3, student.getNo);
}
});
}
這裏的Student實體類就不詳寫了。
- int[] batchUpdate(String sql, BatchPreparedStatementSetter ps): 使用這個方法對同一結構的帶參SQL語句進行批處理。
- public int[] batchUpdate(String[] sql): 多條sql語句組成一個數組(這些sql語句不帶參),方法將批量執行這些sql語句。