1. 程式人生 > >56-jdbc事務

56-jdbc事務



jdbc事務



mysql有事務機制

先試試mysql語句來執行事務

transaction;
update account set balance=900 where name='abc01';
update account set balance=1100 where name='abc02';
commit;

這樣就完成了一次事務

如果在commit;之前呼叫了rollback;
那麼,所有在事務之內的語句都無效了



然後我們來試試jdbc中操作事務
先看看connection的3個關於事務的方法

            connection.setAutoCommit(true);
            connection.setAutoCommit(false);

            connection.commit();
            connection.rollback();


就是
1.是否開啟自動提交
2.提交
3.回滾



我們先來一個最簡單的模板

    public static void test(Connection connection) throws SQLException {
        try {
            //開啟事務(設定false就是關閉自動)
            connection.setAutoCommit(false);

            //...

            //提交
            connection.commit();
            connection.close();
        } catch (Exception e) {
            connection.rollback();
            connection.close();
        }
    }

我們在程式碼的最後要進行提交
但是如果有什麼錯誤的話
就要rollback進行回滾