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

时间:2011-10-23 17:33:06

标签: java oracle jdbc autocommit

我是否必须调用connection.setAutoCommit(false)才能在一个事务中对一些DML语句进行分组?我有点困惑,因为jdbc doc说在自动提交模式下创建了一个新连接。同时,Oracle没有自动提交事务,如果DML语句不存在,则会开始新事务。因此,根据我的理解,connection.setAutoCommit(false)是多余的(假设我不考虑切换到不同的RDMS)。

有人可以澄清这个吗?

感谢。

1 个答案:

答案 0 :(得分:3)

将autocommit设置为true意味着事实上发送到数据库的每个语句都将包含在begin / commit中。交易将被隐含地开始,但它也将被隐含地承诺。下一个陈述也是如此。

如果您希望多个语句成为单个事务的一部分,则需要将autocommit设置为false,执行各种语句,最后明确调用commit。