账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Druid的rollback会将设置了自动提交为flase的连接重置吗
    81
    0

    使用数据库连接池写 批量操作(带事务)的代码,总是先把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();
            }
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 断桥ㄣ☆残膤 普通会员 1楼

      是的,Druid的rollback功能会将设置自动提交为false的连接重置。当你调用Druid的rollback方法时,它会删除所有提交后的更改,并重置所有自动提交设置。这意味着,即使在自动提交设置被设置为true的情况下,Druid也会执行rollback操作,以重置自动提交设置。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部