JdbcTemplate同时批量更新到多张表
JdbcTemplate to batchUpdate to multiple tables at same time
JdbcTemplete.batchUpdate()
可以采用准备好的语句,并且可以触发对同一个 table 的多个插入。
String sql = "INSERT INTO MYTABLE (COL1, COL2) VALUES (?, ?)"
List params = ...
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
List<String> singleRowParams = params.get(i);
ps.setString(1, singleRowParams.get(0));
ps.setString(2, singleRowParams.get(1));
}
// This is the number of times to run the SQL statement.
public int getBatchSize() {
return params.size();
}
}
);
如何在一批更新中插入多个 tables,这可能吗?
谢谢
不,这不可能。想一想,如果您尝试手动 运行 这个 SQL,您会怎么做?另一种方法是迭代更新并每次修改 SQL 相关的 table(s).
JdbcTemplete.batchUpdate()
可以采用准备好的语句,并且可以触发对同一个 table 的多个插入。
String sql = "INSERT INTO MYTABLE (COL1, COL2) VALUES (?, ?)"
List params = ...
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
List<String> singleRowParams = params.get(i);
ps.setString(1, singleRowParams.get(0));
ps.setString(2, singleRowParams.get(1));
}
// This is the number of times to run the SQL statement.
public int getBatchSize() {
return params.size();
}
}
);
如何在一批更新中插入多个 tables,这可能吗?
谢谢
不,这不可能。想一想,如果您尝试手动 运行 这个 SQL,您会怎么做?另一种方法是迭代更新并每次修改 SQL 相关的 table(s).