【发布时间】:2014-11-12 13:57:19
【问题描述】:
我正在发出请求 SQL 以提交一些更新。更新已经完成并且很好,但我想知道批处理是否正确执行,即是一次性提交的语句还是语句一个接一个地执行? 这是因为自动提交被隐式设置为 true,我想知道是否要将批处理作为真正的“批处理”执行,我必须将其设置为 false。
这是一个与此相关的问题:
do I need a connection.commit() after executeBatch()?
代码是:
private void pdate(JdbcTemplate jdbcTemplate, List<Long> saisineIdsToUpdate,Connection connection) throws SQLException {
String sqlUpdate = "UPDATE SAISINES SAI WHERE SAI.IDSAISINE = ?"; //request simplified
PreparedStatement psUpdate = connection.prepareStatement(sqlUpdate);
for (Long saisineId : saisineIdsToUpdate) {
psUpdate.setLong(1, saisineId );
psUpdate.addBatch();
}
psUpdate.executeBatch();
psUpdate.close();
}
【问题讨论】:
标签: java jdbc transactions prepared-statement