sql = "select a, b from aaa order by dbms_random.value";
List<Map<String, Object>> listQy = this.getJdbcTemplate().queryForList(sql);
final List<Map<String, Object>> listQy1 = listQy;
String sqlUp = "insert into bbb(Z,X,V,B ) "
+ "select ?,?,sysdate,? from ccc where C =? and N=?";
this.getJdbcTemplate().batchUpdate(sqlUp, new BatchPreparedStatementSetter() {
public int getBatchSize() {
return listQy1.size();
}
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1,Z);
ps.setString(2, X);
ps.setString(3, B);
ps.setString(4, ((Map) listQy1.get(i)).get("O") == null ? ""
: ((Map) listQy1.get(i)).get("O").toString());
ps.setString(5, N);
}
});
public int getBatchSize();用来返回批次的大小
public void setValues(PreparedStatement ps,int i);
用来为PreparedStatement设值。
参数说明:
ps:我们将要设值的PreparedStatement
i:在这个批次中,正在执行操作的索引,从0算起。