鍍金池/ 問答/Java  數(shù)據(jù)庫/ Druid的rollback會(huì)將設(shè)置了自動(dòng)提交為flase的連接重置嗎

Druid的rollback會(huì)將設(shè)置了自動(dòng)提交為flase的連接重置嗎

使用數(shù)據(jù)庫連接池寫 批量操作(帶事務(wù))的代碼,總是先把conn.setAutoCommit(false);

如果提交的代碼出現(xiàn)異常,會(huì)執(zhí)行conn.rollback()。還需要再設(shè)置setAutoCommit(true)嗎?;

    try {
        conn = getConnection();
        conn.setAutoCommit(false);
        // 各種操作
        stmt.executeBatch();
        conn.commit();
        stmt.clearBatch();
        // 正常結(jié)束時(shí)設(shè)置回去了。
        conn.setAutoCommit(true);
    } catch (Exception e) {
        if (conn != null) {
            conn.rollback();
        }
    } finally {
        if (conn != null) {
            // 是否需要自己手動(dòng)修改這句話?
            conn.setAutoCommit(true);
            conn.close();
        }
}
回答
編輯回答
乖乖噠

不需要設(shè)置 conn.setAutoCommit(true);

conn.close();執(zhí)行后autoCommit屬性變?yōu)閠rue.
2018年8月25日 04:21