java - 从 Java 应用程序到 Oracle 的 jdbc 连接的自动提交模式

标签 java oracle jdbc autocommit

我是否必须调用 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/

相关文章:

sql - CASE 语句和 DECODE 是否等效?

oracle - 将应用程序部署到 Web Logic 生产服务器

java - 如何将 postgresql jdbc 驱动程序添加到 intellij?

java - 如何将连接返回到池

具有可选属性的 Java SQL PreparedStatement UPDATE

java - java/android 新手——理解线程不一致状态

java - eclipse Git : Can't add folder to index

java - 抽象类和枚举

c# - 输出多个查询

java - 如何在 AWS Elastic Beanstalk、连接池和领域上配置 Glassfish