我是否必须调用 connection.setAutoCommit(false)
才能将多个 DML 语句分组到一个事务中?我有点困惑,因为 jdbc 文档说新连接是在自动提交模式下创建的。同时,Oracle没有自动提交事务,DML语句如果不存在则开始一个新事务。因此,根据我的理解,connection.setAutoCommit(false)
是多余的(假设我不考虑切换到不同的 RDMS)。
有人能澄清一下吗?
谢谢。
最佳答案
将 autocommit 设置为 true 实际上意味着发送到数据库的每个语句都将包含在开始/提交中。事务将隐式启动,但也将隐式提交。下一个声明也是如此。
如果您希望多个语句成为单个事务的一部分,则需要将 autocommit 设置为 false,执行各种语句,最后显式调用 commit。
关于java - 从 Java 应用程序到 Oracle 的 jdbc 连接的自动提交模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867861/