国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring事務(wù)的四大特性+事務(wù)的傳播機制+隔離機制

這篇具有很好參考價值的文章主要介紹了Spring事務(wù)的四大特性+事務(wù)的傳播機制+隔離機制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring事務(wù)的四大特性

① 原子性 atomicity

原子性是指事務(wù)是一個不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。

事務(wù)是一個原子操作, 由一系列動作組成。 組成一個事務(wù)的多個數(shù)據(jù)庫操作是一個不可分割的原子單元,只有所有的操作執(zhí)行成功,整個事務(wù)才提交。

事務(wù)中的任何一個數(shù)據(jù)庫操作失敗,已經(jīng)執(zhí)行的任何操作都必須被撤銷,讓數(shù)據(jù)庫返回初始狀態(tài)。

② 一致性 consistency

事務(wù)必須使數(shù)據(jù)庫從一個一致性狀態(tài)變換到另外一個一致性狀態(tài)。

一旦所有事務(wù)動作完成, 事務(wù)就被提交。數(shù)據(jù)和資源就處于一種滿足業(yè)務(wù)規(guī)則的一致性狀態(tài),即數(shù)據(jù)不會被破壞。

比如a+b=100,一個事務(wù)改變了a比如增加了a的值,那么必須同時改變b,保證在事務(wù)結(jié)束以后a+b=100依然成立,這就是一致性。

③ 隔離性 isolation

事務(wù)的隔離性是指一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾,即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。

在并發(fā)數(shù)據(jù)操作時,不同的事務(wù)擁有各自的數(shù)據(jù)空間,它們的操作不會對對方產(chǎn)生干擾。準確地說,并非要求做到完全無干擾。

數(shù)據(jù)庫規(guī)定了多種事務(wù)隔離級別,不同的隔離級別對應不用的干擾程度。隔離級別越高,數(shù)據(jù)一致性越好,但并發(fā)行越弱。

比如對于A對B進行轉(zhuǎn)賬,A沒把這個交易完成的時候,B就不知道A要給他轉(zhuǎn)多少錢。

④ 持久性 durability

持久性是指一個事務(wù)一旦被提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的,接下來的其他操作和數(shù)據(jù)庫故障不應該對其有任何影響。

數(shù)據(jù)庫管理系統(tǒng)一般采用重執(zhí)行日志來保證原子性、一致性和持久性。

重執(zhí)行日志記錄了數(shù)據(jù)庫變化的每一個動作,數(shù)據(jù)庫在一個事務(wù)中執(zhí)行一部分操作后發(fā)生錯誤退出,數(shù)據(jù)庫即可根據(jù)重執(zhí)行日志撤銷已經(jīng)執(zhí)行的操作。對于已經(jīng)提交的事務(wù)即使數(shù)據(jù)庫崩潰,在重啟數(shù)據(jù)庫時也能根據(jù)日志對尚未持久化的數(shù)據(jù)進行相應的重執(zhí)行操作。

Spring事務(wù)的傳播機制

Spring事務(wù)的四大特性+事務(wù)的傳播機制+隔離機制,詳細補充,spring,oracle,數(shù)據(jù)庫

Spring事務(wù)的隔離機制

一個事務(wù)與其他事務(wù)隔離的程度稱為隔離級別。
數(shù)據(jù)庫系統(tǒng)必須具有隔離并發(fā)運行各個事務(wù)的能力, 使它們不會相互影響, 避免各種并發(fā)問題。
對于同時運行的多個事務(wù), 當這些事務(wù)訪問數(shù)據(jù)庫中相同的數(shù)據(jù)時, 如果沒有采取必要的隔離機制,
就會導致各種并發(fā)問題。

隔離級別 存在問題
READ UNCOMMITTED 臟讀、不可重復讀、幻讀
READ COMMITTED 不可重復讀、幻讀
REPEATABLE READ 幻讀
SERIALIZABLE

① DEFAULT(讀提交)

這是一個PlatfromTransactionManager默認的隔離級別,使用數(shù)據(jù)庫默認的事務(wù)隔離級別。

另外四個與JDBC的隔離級別相對應。大部分數(shù)據(jù)庫的默認級別都是READ_COMMITTED(讀取已提交)。

② READ_UNCOMMITTED(讀取未提交)

這是事務(wù)最低的隔離級別,允許當前事務(wù)讀取未被其他事務(wù)提交的變更。

這種隔離級別會產(chǎn)生臟讀,不可重復讀和幻讀。

產(chǎn)生臟讀場景:A事務(wù)讀取一個字段,但是這個字段被另外一個事務(wù)更新卻未提交,

再次讀取該字段時如果另外一個事務(wù)回滾則出現(xiàn)了臟讀現(xiàn)象(讀到的數(shù)據(jù)與第一次,

數(shù)據(jù)庫中的數(shù)據(jù)都不同)。

產(chǎn)生不可重復讀場景:A事務(wù)讀取一個字段,但是這個字段被另外一個事務(wù)更新并提交,

再次讀取該字段值不一樣則出現(xiàn)了不可重復讀現(xiàn)象(同一個事務(wù)中,不能保證讀取的字段值相同)。

產(chǎn)生幻讀場景:A事務(wù)讀取一個字段集合,但是這個表被另外一個事務(wù)更新并提交(如插入了幾行),

再次讀取該表可能會多幾行則出現(xiàn)了幻讀現(xiàn)象。

③ READ_COMMITTED(讀取已提交)

保證一個事務(wù)修改的數(shù)據(jù)提交后才能被另外一個事務(wù)讀取,

另外一個事務(wù)不能讀取該事務(wù)未提交的數(shù)據(jù)??梢员苊馀K讀,但不可重復讀和幻讀的現(xiàn)象仍然可能出現(xiàn)。

不可重復讀

A事務(wù)讀取一個字段,但是這個字段被另外一個事務(wù)更新并提交,再次讀取該字段值不一樣則出現(xiàn)了不可重復讀現(xiàn)象(同一個事務(wù)中,不能保證讀取的字段值相同)。

舉例就是對于一個數(shù)A原來是50,然后提交修改成100,這個時候另一個事務(wù)在A提交修改之前,
讀取到了A是50,剛讀取完,A就被修改成100了,這個時候另一個事務(wù)再進行讀取發(fā)現(xiàn)A就突然變成100了

幻讀

讀取一個字段,但是這個表被另外一個事務(wù)更新并提交(如插入了幾行),再次讀取該表可能會多幾行則出現(xiàn)了幻讀現(xiàn)象。

④ REPEATABLE_READ(可重復讀)

確保事務(wù)可以多次從某行記錄的一個字段中讀取相同的值,在這個事務(wù)持續(xù)期間,禁止其他事務(wù)對這個字段進行更新。這種事務(wù)隔離級別可以防止臟讀,不可重復讀,但是可能出現(xiàn)幻讀。

它除了保證一個事務(wù)不能讀取另一個事務(wù)未提交的數(shù)據(jù)外,還保證了在一個事務(wù)過程,

讀取的數(shù)據(jù)不會發(fā)生變化(即使數(shù)據(jù)庫中的數(shù)據(jù)在該事務(wù)過程中發(fā)生了變化)。

⑤ SERIALIZABLE :(可串行化)

在并發(fā)情況下和串行化的讀取的結(jié)果是一致的,沒有什么不同。這是花費最高代價但是最可靠的事務(wù)隔離級別,事務(wù)被處理為順序執(zhí)行。除了防止臟讀,不可重復讀外,還避免了幻讀。但性能十分低下!

⑥ 什么是臟讀、不可重復讀和幻讀?

臟讀: 對于兩個事務(wù) T1, T2。T1 讀取了已經(jīng)被 T2 更新但還沒有被提交的字段。之后, 若 T2 回滾, T1讀取的內(nèi)容就是臨時且無效的,也就是臟數(shù)據(jù)。

不可重復讀:對于兩個事務(wù) T1, T2。 T1 讀取了一個字段, 然后 T2 更新了該字段。之后, T1再次讀取同一個字段, 值就不同了。

幻讀:事務(wù)T1讀取一條指定where條件的語句,返回結(jié)果集。此時事務(wù)T2插入一些新記錄,恰好滿足T1的where條件。然后T1使用相同的條件再次查詢,結(jié)果集中可以看到T2插入的記錄,這些多出來的新紀錄就是幻讀。

不可重復讀和幻讀的區(qū)別:

不可重復讀重點是在update,即事務(wù)前后對比特定數(shù)據(jù)內(nèi)容的修改。而幻讀是insert和delete,即事務(wù)前后數(shù)據(jù)結(jié)果集的對比。

Oracle數(shù)據(jù)庫支持READ COMMITTED(默認) 和 SERIALIZABLE這兩種事務(wù)隔離級別。所以O(shè)racle不會出現(xiàn)臟讀。

MySQL 支持 4 種事務(wù)隔離級別:READ_UNCOMMITTED(讀取未提交),READ_COMMITTED(讀取已提交),REPEATABLE_READ(可重復讀-默認)和SERIALIZABLE (可串行化)。

Oracle 默認使用的是READ_COMMITTED(讀已提交)。MySQL默認事務(wù)隔離級別為 REPEATABLE_READ(可重復讀)。文章來源地址http://www.zghlxwxcb.cn/news/detail-806983.html

到了這里,關(guān)于Spring事務(wù)的四大特性+事務(wù)的傳播機制+隔離機制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 深入了解 Spring boot的事務(wù)管理機制:掌握 Spring 事務(wù)的幾種傳播行為、隔離級別和回滾機制,理解 AOP 在事務(wù)管理中的應用

    深入了解 Spring boot的事務(wù)管理機制:掌握 Spring 事務(wù)的幾種傳播行為、隔離級別和回滾機制,理解 AOP 在事務(wù)管理中的應用

    ????歡迎光臨,終于等到你啦???? ??我是蘇澤,一位對技術(shù)充滿熱情的探索者和分享者。???? ??持續(xù)更新的專欄 《Spring 狂野之旅:從入門到入魔》 ?? 本專欄帶你從Spring入門到入魔 ? 這是蘇澤的個人主頁可以看到我其他的內(nèi)容哦???? 努力的蘇澤 http://suzee.blog.csdn

    2024年03月21日
    瀏覽(24)
  • 數(shù)據(jù)庫事務(wù)的四大特性與事務(wù)的隔離級別

    數(shù)據(jù)庫事務(wù)的四大特性與事務(wù)的隔離級別

    概要: 事務(wù)的四個特性:原子性、一致性、隔離性、持久性 事務(wù)不隔離帶來的問題:更新丟失、臟讀、不可重復讀、虛讀(幻讀)。其中更新丟失就是并發(fā)寫,這是一定不允許的,因此一定要解決更新丟失問題。 事務(wù)隔離的級別:讀未提交(1000)、讀已提交(1100)、可重

    2023年04月09日
    瀏覽(28)
  • Spring 事務(wù)的相關(guān)配置、傳播行為、隔離級別及注解配置聲明式事務(wù)

    Spring 事務(wù)的相關(guān)配置、傳播行為、隔離級別及注解配置聲明式事務(wù)

    目錄 一、事務(wù)的相關(guān)配置 1. 添加測試標簽 2. 添加對應方法 3. 測試 二、事務(wù)的傳播行為 三、事務(wù)的隔離級別 四、注解配置聲明式事務(wù) 1. 注冊事務(wù)注解驅(qū)動 2. 加上注解 3. 配置類代替xml文件中的注解事務(wù)支持 4. 測試 往期專欄文章相關(guān)導讀? 1. Maven系列專欄文章 2. Mybatis系列專

    2024年02月08日
    瀏覽(25)
  • 56.Spring事務(wù):事務(wù)四大特性

    原子性(Atomicity) 原子性是指事務(wù)包含的所有操作要么全部成功,要么全部失敗回滾, 因此事務(wù)的操作如果成功就必須要完全應用到數(shù)據(jù)庫,如果操作失敗則不能對數(shù)據(jù)庫有任何影響。 一致性(Consistency) 一致性是指事務(wù)必須使數(shù)據(jù)庫從一個一致性狀態(tài)變換到另一個一致性

    2024年01月16日
    瀏覽(28)
  • Spring 事務(wù)和事務(wù)傳播機制

    Spring 事務(wù)和事務(wù)傳播機制

    目錄 ??今日良言:生命只有一次,你要活的暢快淋漓 ??一、Sping 事務(wù) 1.Spring 中事務(wù)的實現(xiàn) 2.Spring 中事務(wù)隔離級別 ??二、Spring 事務(wù)傳播機制 1.基本概念 2.詳細介紹 1.Spring 中事務(wù)的實現(xiàn) 在MySQL中也有事務(wù),如下鏈接是博主之前寫的關(guān)于MySQL事務(wù)的博客: 如何理解數(shù)據(jù)庫事務(wù)

    2024年02月07日
    瀏覽(22)
  • Spring事務(wù)和事務(wù)傳播機制(1)

    Spring事務(wù)和事務(wù)傳播機制(1)

    ??????SSM專欄更新中,各位大佬覺得寫得不錯,支持一下,感謝了!?????? Spring + Spring MVC + MyBatis_冷兮雪的博客-CSDN博客 在Spring框架中,事務(wù)管理是一種用于維護數(shù)據(jù)庫操作的一致性和完整性的機制。Spring事務(wù)管理提供了靈活的方式來處理事務(wù),包括事務(wù)的創(chuàng)建

    2024年02月12日
    瀏覽(26)
  • Spring—事務(wù)及事務(wù)的傳播機制

    Spring—事務(wù)及事務(wù)的傳播機制

    將一組操作封裝成一個執(zhí)行單元, 即這一組操作一同成功 / 一同失敗 舉個栗子?? 未使用事務(wù) 滑稽老哥給女神轉(zhuǎn)賬 520 由于某種原因, 女神并未收到轉(zhuǎn)賬的 520, 而滑稽老哥卻被扣款 520 使用事務(wù) 滑稽老哥給女神轉(zhuǎn)賬 520 由于某種原因, 女神并未收到轉(zhuǎn)賬的 520 因為使用事務(wù), 所以

    2024年02月13日
    瀏覽(23)
  • Spring——Spring事務(wù)的實現(xiàn)方式及傳播特性

    Spring事務(wù)的特性及隔離級別同事務(wù),詳情請見 事務(wù)——什么是事務(wù),事務(wù)的特性,事務(wù)的隔離級別_醉酒的戈多的博客-CSDN博客 在使用Spring框架的時候,有以下兩種事務(wù)的實現(xiàn)方式: 編程式事務(wù):用戶自己通過代碼來控制事務(wù)的處理邏輯 聲明式事務(wù):通過@Transactional注解來實

    2024年02月13日
    瀏覽(21)
  • Spring Boot 事務(wù)和事務(wù)傳播機制

    Spring Boot 事務(wù)和事務(wù)傳播機制

    事務(wù)定義 將一組操作封裝成一個執(zhí)行單元 (封裝到一起),這一組的執(zhí)行具備原子性, 那么就要么全部成功,要么全部失敗. 為什么要用事務(wù)? 比如轉(zhuǎn)賬分為兩個操作: 第一步操作:A 賬戶-100 元。 第二步操作:B賬戶 +100 元。 如果沒有事務(wù),第一步執(zhí)行成功了,第二步執(zhí)行失敗了,

    2024年02月11日
    瀏覽(25)
  • Spring事務(wù)傳播機制解析

    在Java的Spring框架中,事務(wù)管理是保證應用數(shù)據(jù)一致性和可靠性的關(guān)鍵。Spring提供了靈活的事務(wù)傳播機制,它定義了事務(wù)邊界,以及在嵌套方法調(diào)用時如何處理事務(wù)。本文旨在深入探討Spring的事務(wù)傳播行為,幫助開發(fā)者更好地理解和運用這一重要特性。 事務(wù)傳播機制指的是在

    2024年01月16日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包