【问题标题】:is there a way to tell JDBC I am about to execute a transaction?有没有办法告诉 JDBC 我即将执行事务?
【发布时间】:2014-12-07 18:34:35
【问题描述】:

将 AutoCommit 设置为 false 时;这是否意味着我必须在我的应用程序中执行每个 sql 命令后提交。

这是一个场景

SQL1 不需要是事务。 SQL2 需要是一个事务。

如果我将 AutoCommit 设置为 false,这是否意味着我必须更改所有代码,并在每个类似 SQL1 的命令之后加上“commit”?

【问题讨论】:

    标签: java database jdbc


    【解决方案1】:

    当您想要单独执行 SQL 语句时,将 AutoCommit 设置为 true。每条 SQL 语句都会在其各自的事务中自动执行。

    当您想将多个 SQL 语句捆绑到一个事务中并在所有 SQL 语句都执行后提交事务时,请将 AutoCommit 设置为 false

    按照我阅读documentation 的方式,当您执行第一个SQL 语句时,会隐式创建一个事务。如果AutoCommit 设置为true,则它会立即提交,或者如果AutoCommit 设置为false,则继续接受进一步的SQL 语句到事务中直到您手动提交。

    【讨论】:

    • 请注意,您必须在执行任何语句之前使用Connection#setAutocommit,或者确保所有连接在创建时都有autocommit = false,这取决于创建时发送给驱动程序管理器的参数连接。
    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 2021-01-02
    • 1970-01-01
    • 2011-06-19
    • 2011-06-25
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多