gpt4 book ai didi

java - executeBatch() 之后需要 connection.commit() 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:14 26 4
gpt4 key购买 nike

我必须检查一位同事的代码,我无意中发现了这段代码:

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();

代码有效,更新正确完成,但我找不到 connection.commit(); 的踪迹我想知道它如何在没有提交的情况下工作 - 有人可以解释为什么吗?

最佳答案

如解释here ,JDBC 驱动程序通常使用自动提交,您可以通过 DBMS 驱动程序特定设置启用数据库跟踪,例如 JPA 中的 showSQLgenerateDDL

To enable manual- transaction support instead of the auto-commit mode that the JDBC driver uses by default, use the Connection object's setAutoCommit() method. If you pass a boolean false to setAutoCommit( ), you turn off auto-commit. You can pass a boolean true to turn it back on again.

关于java - executeBatch() 之后需要 connection.commit() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26888272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com