資料庫的事務技術:mysql的事務是什麼?有什麼作用?如何實現?

一件事情有n個組成單元,要不這n個組成單元同時成功,要不n個單元就同時失敗,這n個單元組成一個事務

mysql的事務

默認的事務:一條sql語句就是一個事務默認就開啟事務並提交事務

手動事務(sql語句操作):

1)顯示的開啟一個事務:start transaction2)事務提交:commit代表從開啟事務到事務提交 中間的所有的sql都認為有效,真正的更新數據庫3)事務的回滾:rollback 代表事務的回滾 從開啟事務到事務回滾 中間的所有的sql操作都認為無效數據庫沒有被更新

JDBC事務操作

默認是自動事務:

執行sql語句:executeUpdate() 每執行一次executeUpdate方法代表事務自動提交

通過jdbc的API手動事務(jdbc的方式):

開啟事務:conn.setAutoComnmit(false);提交事務:conn.commit();回滾事務:conn.rollback();

注意:執行sql的connection與開啟事務的connnection必須是同一個才能對事務進行控制

DBUtils事務操作

有參構造:QueryRunner runner = new QueryRunner(DataSource dataSource);

有參構造將數據源(連接池)作為參數傳入QueryRunner,QueryRunner會從連接池中獲得一個數據庫連接資源操作數據庫,所以直接使用無Connection參數的update方法即可操作數據庫,但是因為沒有Connection,所以無法操作事務

無參構造:QueryRunner runner = new QueryRunner();

無參的構造沒有將數據源(連接池)作為參數傳入QueryRunner,那麼我們在使用QueryRunner對象操作數據庫時要使用有Connection參數的方法,這樣我們就可以開啟事務了

數據庫的事務技術:mysql的事務是什麼?有什麼作用?如何實現?


分享到:


相關文章: