09-事务原理和自动提交设置
生活随笔
收集整理的這篇文章主要介紹了
09-事务原理和自动提交设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一、事務學習目標
- 1.什么是事務:
- 2.事務特性:
- 3.不考慮隔離性會產生的3個問題
- 4.解決方法:四種隔離級別
一、事務學習目標
它是通過 sqlsession 對象的 commit 方法和 rollback 方法實現事務的提交和回滾
下面這條語句可不用寫,會自動執行,但是反復調用同一個接口的增刪改,不可不寫
sqlSession.commit();1.什么是事務:
事務是程序中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性(要么成功,要么失敗)。
2.事務特性:
事務特性分為四個:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持續性(Durability)簡稱ACID。
3.不考慮隔離性會產生的3個問題
臟讀、不可重復讀、幻讀這幾類問題。
- 臟讀:指當一個事務正字訪問數據,并且對數據進行了修改,而這種數據還沒有提交到數據庫中,這時,另外一個事務也訪問這個數據,然后使用了這個數據。因為這個數據還沒有提交那么另外一個事務讀取到的這個數據我們稱之為臟數據。依據臟數據所做的操作肯能是不正確的。
- 不可重復讀:指在一個事務內,多次讀同一數據。在這個事務還沒有執行結束,另外一個事務也訪問該同一數據,那么在第一個事務中的兩次讀取數據之間,由于第二個事務的修改第一個事務兩次讀到的數據可能是不一樣的,這樣就發生了在一個事物內兩次連續讀到的數據是不一樣的,這種情況被稱為是不可重復讀。
- 幻象讀:一個事務先后讀取一個范圍的記錄,但兩次讀取的紀錄數不同,我們稱之為幻象讀(兩次執行同一條 select 語句會出現不同的結果,第二次讀會增加一數據行,并沒有說這兩次執行是在同一個事務中)
4.解決方法:四種隔離級別
read uncommited:是最低的事務隔離級別,它允許另外一個事務可以看到這個事務未提交的數據。
read commited:保證一個事物提交后才能被另外一個事務讀取。另外一個事務不能讀取該事物未提交的數據。
repeatable read:這種事務隔離級別可以防止臟讀,不可重復讀。但是可能會出現幻象讀。它除了保證一個事務不能被另外一個事務讀取未提交的數據之外還避免了以下情況產生(不可重復讀)。
serializable:這是花費最高代價但最可靠的事務隔離級別。事務被處理為順序執行。除了防止臟讀,不可重復讀之外,還避免了幻象讀。
轉載于:https://www.cnblogs.com/zuiren/p/11406123.html
總結
以上是生活随笔為你收集整理的09-事务原理和自动提交设置的全部內容,希望文章能夠幫你解決所遇到的問題。