1

Connection#rollback的javadoc明确指出:

仅当禁用自动提交模式时才应使用此方法。

该方法存在类似的警告commit

但是,查看代码,例如在Apache commons DbUtils中,我只看到:

public static void rollback(Connection conn) throws SQLException {
        if (conn != null) {
            conn.rollback();
        }
}

有一个实用功能只是为了防止 NPE 并省略测试自动提交模式似乎很奇怪。我本来期望以下几点:

public static void rollback(Connection conn) throws SQLException {
    if (conn != null) {
        final boolean autoCommit = (boolean) conn.getAutoCommit();
        if (!autoCommit)
            DbUtils.rollback(conn);
    }
}

javadoc 中的警告(rollback仅应在禁用自动提交模式时调用)是否在实践中实际观察到,如果是这样,为什么成功的 JDBC 库不会打扰它?

4

1 回答 1

-1

当启用自动提交时,回滚方法根本没有效果。

于 2017-06-01T14:51:15.403 回答