日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

09-事务原理和自动提交设置

發布時間:2025/5/22 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 09-事务原理和自动提交设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、事務學習目標
    • 1.什么是事務:
    • 2.事務特性:
    • 3.不考慮隔離性會產生的3個問題
    • 4.解決方法:四種隔離級別

一、事務學習目標

  • 什么是事務
  • 事務的四大特性ACID
  • 不考慮隔離性會產生的3個問題
  • 解決方法:四種隔離級別
  • 它是通過 sqlsession 對象的 commit 方法和 rollback 方法實現事務的提交和回滾

    下面這條語句可不用寫,會自動執行,但是反復調用同一個接口的增刪改,不可不寫

    sqlSession.commit();

    1.什么是事務:

    事務是程序中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性(要么成功,要么失敗)。

    2.事務特性:

    事務特性分為四個:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持續性(Durability)簡稱ACID。

  • 原子性(Atomicity):事務是數據庫邏輯工作單元,事務中包含的操作要么都執行成功,要么都執行失敗。
  • 一致性(Consistency):事務執行的結果必須是使數據庫數據從一個一致性狀態變到另外一種一致性狀態。當事務執行成功后就說數據庫處于一致性狀態。如果在執行過程中發生錯誤,這些未完成事務對數據庫所做的修改有一部分已寫入物理數據庫,這是數據庫就處于不一致狀態。
  • 隔離性(Isolation):一個事務的執行過程中不能影響到其他事務的執行,即一個事務內部的操作及使用的數據對其他事務是隔離的,并發執行各個事務之間無不干擾。
  • 持續性(Durability):即一個事務執一旦提交,它對數據庫數據的改變是永久性的。之后的其它操作不應該對其執行結果有任何影響。
  • 3.不考慮隔離性會產生的3個問題

    臟讀、不可重復讀、幻讀這幾類問題。

    • 臟讀:指當一個事務正字訪問數據,并且對數據進行了修改,而這種數據還沒有提交到數據庫中,這時,另外一個事務也訪問這個數據,然后使用了這個數據。因為這個數據還沒有提交那么另外一個事務讀取到的這個數據我們稱之為臟數據。依據臟數據所做的操作肯能是不正確的。
    • 不可重復讀:指在一個事務內,多次讀同一數據。在這個事務還沒有執行結束,另外一個事務也訪問該同一數據,那么在第一個事務中的兩次讀取數據之間,由于第二個事務的修改第一個事務兩次讀到的數據可能是不一樣的,這樣就發生了在一個事物內兩次連續讀到的數據是不一樣的,這種情況被稱為是不可重復讀。
    • 幻象讀:一個事務先后讀取一個范圍的記錄,但兩次讀取的紀錄數不同,我們稱之為幻象讀(兩次執行同一條 select 語句會出現不同的結果,第二次讀會增加一數據行,并沒有說這兩次執行是在同一個事務中)

    4.解決方法:四種隔離級別

    read uncommited:是最低的事務隔離級別,它允許另外一個事務可以看到這個事務未提交的數據。

    read commited:保證一個事物提交后才能被另外一個事務讀取。另外一個事務不能讀取該事物未提交的數據。

    repeatable read:這種事務隔離級別可以防止臟讀,不可重復讀。但是可能會出現幻象讀。它除了保證一個事務不能被另外一個事務讀取未提交的數據之外還避免了以下情況產生(不可重復讀)。

    serializable:這是花費最高代價但最可靠的事務隔離級別。事務被處理為順序執行。除了防止臟讀,不可重復讀之外,還避免了幻象讀。

    轉載于:https://www.cnblogs.com/zuiren/p/11406123.html

    總結

    以上是生活随笔為你收集整理的09-事务原理和自动提交设置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。