在之前的工作中遇到了需要执行多次SQL的语句,所以查询了一下JdbcTemplate的batchUpdate方法的使用方法。
batchUpdate(String,BatchPreparedStatementSetter方法主要是插入,更新时使用。该方法中的BatchPreparedStatementSetter类需要重写setValues方法(执行一条语句时,进行参数的插入),getBatchSize方法(获取需要插入的数组)
List<Object> o = new ArrayList<Object>();
int[] i = jdbcTemplate.batchUpdate(sql,new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException{
Teacher t = teachers.get(i);
ps.setLong(1, t.getId());
}
@Override
public int getBatchSize() {
return teachers.size();
}
});
源码分析:
由于本人比较菜鸡,有一些点分析的不到位,请见谅,欢迎指出。
@Override
public int[] batchUpdate(String sql, final BatchPreparedStatementSetter p