網(wǎng)站首頁 編程語言 正文
1.propagation事務(wù)的傳播行為
看完就明白_spring事務(wù)的7種傳播行為_gnixlee的博客-CSDN博客_事務(wù)傳播行為
requird
方法A調(diào)用方法B,A中有事務(wù),不管B中有沒有事務(wù),B都被放入A中的事務(wù)執(zhí)行
A中沒有事務(wù),B就創(chuàng)建一個新事務(wù),和A一起在新事物執(zhí)行
requird-new
它會開啟一個新的事務(wù)。如果一個事務(wù)已經(jīng)存在,則先將這個存在的事務(wù)掛起。
2.isolation 事務(wù)的隔離級別
為了解決以下三個問題
1>臟讀
? ??一個未提交的事務(wù)讀到了一個未提交事務(wù)的數(shù)據(jù)
例子:事務(wù)a和事務(wù)b都要對一行中的同一個sal進(jìn)行修改值是5000,事務(wù)a要在原來基礎(chǔ)上加200,事務(wù)b要減200.事務(wù)a先加兩百但沒提交,事務(wù)b才讀數(shù)據(jù),事務(wù)b讀到的就是事務(wù)a加兩百之后的數(shù)據(jù)5200,如果這時候a回滾了,則a的修改應(yīng)該撤銷,b讀到的應(yīng)該是5000,但是實際上b讀到的是a修改之后的數(shù)據(jù) 5200,這就是臟讀。
2>不可重復(fù)讀
一個未提交的事務(wù)讀到了一個已經(jīng)提交的事務(wù)的數(shù)據(jù)
例子:事務(wù)a修改了sal,并立刻提交,b再讀sal,讀到的就是a修改之后的數(shù)據(jù)。
注意,這不是錯誤,一般是可以接受的,造成的后果僅僅是a每次讀到的數(shù)據(jù)可能不一樣
3>虛讀
一個未提交的數(shù)據(jù)讀到了一個已經(jīng)提交的事務(wù)的增加的數(shù)據(jù)
這是不可重復(fù)讀的一種情況
解決方法:設(shè)置參數(shù)
@Transactional(isolation = Isolation.READ_UNCOMMITTED ) 不解決問題
@Transactional(isolation = Isolation.READ_COMMITTED )解決臟讀
@Transactional(isolation = Isolation.REPEATABLE_READ)解決臟讀和不可重復(fù)讀 mysql默認(rèn)
@Transactional(isolation = Isolation.SERIALIZABLE) 三個都解決
效率從下往上越來越高
3.timeout
事務(wù)在多長時間內(nèi)必須提交,否則回滾事務(wù),mysql默認(rèn)是不超時
4.readonly
? ?默認(rèn)值是可以增刪改查,當(dāng)值為true時,只能查詢
5.rollbackfor?
出現(xiàn)哪些異常回滾
6.norollbackfor
? 出現(xiàn)哪些異常不回滾
原文鏈接:https://blog.csdn.net/sharesb/article/details/123932693
相關(guān)推薦
- 2022-07-09 C++深入探究用NULL來初始化空指針是否合適_C 語言
- 2023-11-26 (有效解決)Android Studio 運行項目時報 Package install error:
- 2022-04-18 C#線程中彈窗的制作方法_C#教程
- 2022-07-16 windows下的SDL開發(fā)環(huán)境搭建(基于mingw編譯運行)
- 2024-03-05 git創(chuàng)建分支
- 2022-07-09 Python二分查找+字符串模板+textwrap模塊,_python
- 2022-06-21 C語言程序的編譯與預(yù)處理基礎(chǔ)定義講解_C 語言
- 2022-10-27 python使用pika庫調(diào)用rabbitmq參數(shù)使用詳情_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支