第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JDBC Connection 的 rollback 方法在哪里調(diào)用?

JDBC Connection 的 rollback 方法在哪里調(diào)用?

動漫人物 2019-02-28 02:35:32
不帶事務(wù)的代碼是這樣的(外層的try-catch已省略): Connection conn = getConnection(); try { Statement stmt = conn.createStatement(); stmt.executeUpdate(sql1); stmt.executeUpdate(sql2); } finally { conn.close(); } 如果要添加事務(wù),rollback在哪里調(diào)用? 如果在catch中調(diào)用,那么捕獲哪個異常?如果僅僅捕獲SQLException,那么拋出其它異常的時候怎么辦?如果捕獲Exception,那么拋出的異常目前沒法處理(例如RuntimeException)又怎么辦? 如果在finally中調(diào)用,我怎么區(qū)分正常和異常情況?
查看完整描述

2 回答

?
哆啦的時光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗 獲得超6個贊

try (Connection conn = null) {
    conn.setAutoCommit(false);
    try (Statement stmt = conn.createStatement()) {
        stmt.executeUpdate(sql1);
        stmt.executeUpdate(sql2);
        conn.commit();
    } catch (SQLException | RuntimeException e) {
        e.printStackTrace();
        conn.rollback();
    }
} catch (SQLException e) {
    e.printStackTrace();
}

如果你覺得需要的話, 可以把RuntimeExceptionrollback了,但是上面的情況下,我覺得更應(yīng)該考慮為什么會拋出RuntimeException。

查看完整回答
反對 回復(fù) 2019-03-01
  • 2 回答
  • 0 關(guān)注
  • 1355 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號