Druid的rollback会将设置了自动提交为flase的连接重置吗

使用数据库连接池写 批量操作(带事务)的代码,总是先把conn.setAutoCommit(false);

如果提交的代码出现异常,会执行conn.rollback()。还需要再设置setAutoCommit(true)吗?;

    try {
        conn = getConnection();
        conn.setAutoCommit(false);
        // 各种操作
        stmt.executeBatch();
        conn.commit();
        stmt.clearBatch();
        // 正常结束时设置回去了。
        conn.setAutoCommit(true);
    } catch (Exception e) {
        if (conn != null) {
            conn.rollback();
        }
    } finally {
        if (conn != null) {
            // 是否需要自己手动修改这句话?
            conn.setAutoCommit(true);
            conn.close();
        }
}
阅读 4k
1 个回答

不需要设置 conn.setAutoCommit(true);

conn.close();执行后autoCommit属性变为true.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题