我這是自己整理下,有不對的地方,大佬們輕點噴
一:什麼是事務?
它是通過sqlsession物件的commit方法和rollback方法實現事務的提交和回滾
二:事務的四大特性acid
原子性: 即乙個事務內的所有操作在一起,要麼全部失敗,要麼全部成功。(同生死的意思)
一致性: 如果事務執行之前資料庫是乙個完整性的狀態,那麼事務結束後,無論事務是否執行成功,資料庫仍然是乙個完整性狀態。(假如有10萬,不考慮那麼多雜七雜八的,你還是有10萬)
隔離性: 事物可以有多個原子包的形式併發執行,但是,每個事物互不干擾 (簡單明瞭)
永續性: 只要事務提交了,那麼他就是提交了(不受影響)。(當然,乾掉硬碟也照樣完蛋)
三:不考慮隔離性的三個問題
髒讀: 再這個事務的處理過程,也就是讀取錯了,讀取到另乙個沒提交的事務了
不可重複讀: 就是不可以讀取前一事務提交的資料
虛讀(幻讀): 幻讀也是讀取了另一條已經提交的事務,但幻讀針對的是一批資料整體
四:四種隔離級別(解決辦法)
注:級別越高,執行效率越低
serializable (序列化):可避免髒讀、不可重複讀、幻讀的發生。
repeatable read (可重複讀):可避免髒讀、不可重複讀的發生。(mysql資料庫預設)
read committed (讀已提交):可避免髒讀的發生。
read uncommitted (讀未提交):最低級別,任何情況都無法保證。
springBoot中mybatis事務使用方法
1.在springboot中mybatis plus boot starter 或 mybatis spring boot starter 會自動定義好事物,在pom.xml中匯入jar 3.在需要回滾的方法或類上新增註解 transactional user表資料會執行成功 而 userinfo表...
Mybatis 的事務控制
事務 訪問並可能更新資料庫中各種資料項的乙個程式執行單元 unit 事務的四個特性 原子性 一致性 隔離性 永續性 不考慮隔離性的三個問題 丟失修改 不可重複讀,讀髒資料 解決辦法 四種隔離級別 在 jdbc 中我們可以通過手動方式將事務的提交改為手動方式,通過setautocommit 方法就可以...
mybatis的連線池 事務
一 連線池 資料庫連線池負責分配,管理,釋放資料庫連線 實際開發中一般都會使用連線池,可以減少獲取連線所消耗的時間 mybatis 中資料來源的配置我們的資料來源配置就是在 sqlmapconfig.xml 檔案中 type pooled name driver value name url val...