方法:先实现BatchPreparedStatementSetter接口,然后再调用JdbcTemplate的batchUpdate(sql,setter)操作,参数sql是预编译语句 ,setter是BatchPreparedStatementSetter的一个实例。或者使用内部匿名类方式。
BatchPreparedStatementSetter接口
public interface BatchPreparedStatementSetter{ public int getBatchSize();//返回批次的大小 public void setValues(PreparedStatement ps,int i);
// ps:我们将要设值的PreparedStatement
// i:在这个批次汇总,正在执行操作的索引,从0算起
}
实现(内部匿名类):
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter(){ public int getBatchSize() { // TODO Auto-generated method stub return resourceList.size(); //读取数据源列表的大小 } public void setValues(PreparedStatement ps, int i) throws SQLException { // TODO Auto-generated method stub ResourceBean resourceBean =(ResourceBean)resourceList.get(i); //读取要插入的源数据列表 pstmt.setString(1,resourceBean.getId()); pstmt.setString(2,resourceBean.getName()); pstmt.setString(3,resourceBean.getAuthor()); ... ... } });