[许多文章和文档说,通过禁用自动提交,可以在JDBC中启动事务。 This Topic也问同样的问题,但它没有回答问题,只是说:
更改自动提交模式会触发当前事务的提交(如果一个事务处于活动状态。)>
好但是接下来呢?
为了寻找答案,我搜索并找到了this:
- 自动提交交易:
每个单独的语句都是交易。
- 明确交易:
每个交易均以BEGIN TRANSACTION语句,并显式以COMMIT或结尾ROLLBACK语句。
- 隐式交易:
当先前的事务完成时,将隐式启动一个新事务,但是每个事务都是显式的用COMMIT或ROLLBACK语句完成。
然后我找到了this:
提交交易
禁用自动提交模式后,在您显式调用方法commit之前,不会提交任何SQL语句。 在上一次调用方法
commit
之后执行的所有语句都包含在当前事务中,并作为一个单元一起提交。因此,我得出结论,在禁用自动提交模式之后,我们处于隐式模式,我们还知道,为了禁用自动提交,已运行COMMIT语句,因此在将自动提交设置为关闭后,我们已经开始新交易。
我们可以根据这些情况得出这样的结论吗?结论正确吗?
[许多文章和文档说,通过禁用自动提交,可以在JDBC中启动事务。该主题也提出了相同的问题,但是它没有回答这个问题,只是说:...
不,你不能。在JDBC中,自动提交仅控制事务何时结束。期望驱动程序在需要时启动事务。具体来说,JDBC 4.3 specification在10.1事务边界和自动提交