JavaWeb—事務(學習自用)

一.事務

(一)概述

  1. 定義:是數據庫操作的最小工作單元。

  2. 事務4大特性(ACID)
    原子性:(Atomicity)事務中所有操作是不可再分割的原子單位。事務中所有操作要麼全部執行成功,要麼全部執行失敗。
    一致性:(Consistency)事務執行後,數據庫狀態與其它業務規則保持一致。如轉賬業務,無論事務執行成功與否,參與轉賬的兩個賬號餘額之和應該是不變的。
    隔離性:(Isolation)隔離性是指在併發操作中,不同事務之間應該隔離開來,使每個併發中的事務不會相互干擾。
    持久性:(Durability)一旦事務提交成功,事務中所有的數據操作都必須被持久化到數據庫中,即使提交事務後,數據庫馬上崩潰,在數據庫重啓時,也必須能保證通過某種機制恢復數據。

  3. MySQL中的事務
    在默認情況下,MySQL每執行一條SQL語句,都是一個單獨的事務。
    如果需要在一個事務中包含多條SQL語句,那麼需要開啓事務和結束事務。
    開啓事務:start transaction
    結束事務:commit或者rollback
    說明:在執行SQL語句之前,先執行strat transaction,這就開啓了一個事務(事務的起點),然後可以去執行多條SQL語句,最後要結束事務,commit表示提交,即事務中的多條SQL語句所做出的影響會持久化到數據庫中。或rollback,表示回滾,即回滾到事務的起點,之前做的所有操作都被撤消了!

(二)JDBC事務

  1. 定義:在jdbc中處理事務,都是通過connection完成的同一事務中所有的操作,都在使用同一個connection對象。

  2. jdbc中的事務:Connection的三個方法:
    setAutoCommit(boolean):設置是否爲自動提交事務,如果true(默認值就是true)表示自動提交,也就是每條執行的SQL語句都是一個單獨的事務,如

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章