一、事務的四大特性:
1.原子性(atomicity):事務中所有操作是不可再分割的原子單位,事務中所有的操作要麼全部執行,要麼全部執行失敗。
2.一致性(consistency):事務執行後,資料庫狀態與其他業務規則保持一致。eg:轉賬業務,無論事務執行成功與否,參與轉賬的雙方餘額之和應該是不變的。
3.隔離性(isolation):在併發操作中,不同事務之間應該隔離開來,是每個併發中的事務不會互相干擾。
4.永續性(durabiity):一旦事務提交成功,事務中所有的資料操作都必須被持久化到資料庫中,即使提交事務後,資料庫馬上崩潰,在資料庫重啟時,也必須能保證通過某 種機制恢復資料。
二、mysql中操作事務
開始事務:start transaction;
結束事務:commit(結束事務,並提交) 和 rollback(結束事務,但不提交,回到未修改狀態)。
三、jdbc中的事務
在jdbc中處理事務,都是通過connection完成的!
jdbc處理事務的**格式:
//同一事務中所有的操作,都在使用同乙個
connection
物件!
trycatch(exception e)}
四、事務的隔離級別
(髒讀:讀到另乙個事務的未提交更新資料,即讀取到了髒資料;
不可重複讀(unrepeatable read):對同一記錄的兩次讀取不一致,因為另一事務對該記錄做了修改;
幻讀(虛讀)(phantom read):對同一張表的兩次查詢不一致,因為另一事務插入了一條記錄;)
四個隔離級別(效能依次上公升)
serializable(序列化):不會出現任何併發問題,因為它是對同一資料的訪問時序列的,非併發訪問。
repeatable read(可重複讀):防止髒讀和不可重複讀。不能處理幻讀問題
read committed (讀已提交資料):防止髒讀,沒有處理不可重複和幻讀問題。
read uncommitted(讀未提交資料):可能發生任何問題。
事務學習筆記(1)
事務的四個特性 acid a 原子性 乙個事務要麼成功,要麼不成功,不成功就會回滾回事務執行前的狀態。c 一致性 在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞 i 隔離性 資料庫允許多個併發事務同時對其資料進行讀寫和修改 d 永續性 事務處理之後,對資料的修改失持久的 springboot...
學習事務筆記
事務 transaction 其實指的一組操作,裡面包含許多個單一的邏輯。只要有乙個邏輯沒有執行成功,那麼都算失敗。所有的資料都回歸到最初的狀態 回滾 為什麼要有事務?為了確保邏輯的成功。例子 銀行的轉賬。指的是 事務中包含的邏輯,不可分割。指的是 事務執行前後。資料完整性 指的是 事務在執行期間不...
事務 學習筆記
講解事務前我們先來看一張圖 這張圖講述了資料庫的隔離級別和預防髒讀 不可重複讀,幻讀的對應關係。那麼mysql 預設的資料庫隔離級別是repeatable read 這個級別下就不會出現髒讀和不可重複讀。而oracle和sqlserver 的預設隔離級別是 read committed 這種級別不會...