方法:先实现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());
... ...
}});
spring jdbcTemplate批量更新数据,布布扣,bubuko.com