javadoc for Connection#rollback明确指出:
只有在禁用自动提交模式时才应使用此方法。
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库不会打扰它呢? / p>
答案 0 :(得分:-1)
启用auto-comit后,回滚方法无效。