当大多数最佳编程方法建议将 JDBC 自动提交设置为 false 时,将默认值设置为 true 的 JDBC API 设计背后的合理性是什么?
最佳答案
将默认值设置为 true 的 JDBC API 设计背后的合理性是什么?
仅当您处理多个INSERT/UPDATE
sql查询(通过JDBC处理)时,您才可以通过设置connection.setAutoCommit(false)
来控制事务)在数据库表内/跨数据库表作为原子操作,只有中型/复杂规模的应用程序才需要。
现在,如果所有事务都必须显式处理(即,正如您所建议的,如果默认情况下 connection.setAutoCommit(false)
),那么开发人员即使对于单个 INSERT/UPDATE
sql 查询(通过 JDBC 处理),确保已正确处理 commit
() 和 rollback
(),否则 连接
将挂起,并且很难调试。
If auto-commit mode has been disabled, the method commit must be called explicitly in order to commit changes; otherwise, database changes will not be saved.
你可以看看here
按照您的方法,即为每笔交易显式调用 commit
是不必要的,如果我们忽略一次,那就弊大于利。
关于java - JDBC 在应用程序级别自动提交为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40529288/