-
使用xml配置聲明式事務(wù)——基于tx/aop
查看全部 -
使用xml配置聲明式事務(wù)
查看全部 -
編程事務(wù)控制
查看全部 -
spring的事務(wù)管理
????編程式事務(wù)、:通過TransactionTemplate手動管理事務(wù)
????聲明式事務(wù)、:使用xml進行配置,只要通過spring的AOP進行實現(xiàn)
查看全部 -
TransactionStatus接口用來記錄事務(wù)的狀態(tài) 該接口定義了一組方法,用來獲取或判斷事務(wù)的相應(yīng)狀態(tài)信息. 平臺事務(wù)管理器(PlatformTransactionManager)會根據(jù)TransactionDefinition中定義的事務(wù)信息(包括隔離級別、傳播行為)來進行事務(wù)的管理,在管理的過程中事務(wù)可能產(chǎn)生了保存點或事務(wù)是新的事務(wù)等情況,那么這些信息都會記錄在TransactionStatus的對象中.
查看全部 -
事務(wù)的傳播行為要解決的問題:
業(yè)務(wù)層中添加了事務(wù)的的多個方法被一起調(diào)用時如何處理各方法間事務(wù)的關(guān)系的問題,具體來說是事務(wù)如何傳遞的問題。
假如業(yè)務(wù)層中有事務(wù)方法A和B,另外有一個方法C在其方法體中依次調(diào)用了A和B,由于A和B都有各自的事務(wù),此時B的傳播行為就決定了其如何處理和A已有的事務(wù)之間的關(guān)系;
七種傳播行為分為三類:
支持當(dāng)前事務(wù),即事務(wù)存在則加入當(dāng)前事務(wù),如果事務(wù)不存在分別有新建一個事務(wù),不使用事務(wù),拋出異常三種行為;
不支持當(dāng)前事務(wù),即獨立運行事務(wù),如果事務(wù)存在分別有新建一個事務(wù),不使用事務(wù),拋出異常三種行為;
如果當(dāng)前事務(wù)存在,則將自身的事務(wù)作為當(dāng)前事務(wù)的子事務(wù)運行,在運行子事務(wù)時,當(dāng)前事務(wù)記錄一個保存點,子事務(wù)不報錯則和當(dāng)前事務(wù)一起提交或回滾,子事務(wù)報錯則根據(jù)自定義配置讓當(dāng)前事務(wù)回滾到保存點或起始點;
查看全部 -
事務(wù)隔離級別(級別)
MySql默認的事務(wù)隔離級別為REPEATABLE_READ?
Oracle默認的事務(wù)隔離級別為READ_COMMITTED
查看全部 -
臟讀:
????????一個事務(wù)讀取到另一個事務(wù)還沒有提交的數(shù)據(jù),如果這些數(shù)據(jù)被回滾,則讀取到的數(shù)據(jù)是無效的。
不可重復(fù)讀:
????????在同一個事務(wù)中,多次讀取同一數(shù)據(jù),讀到了另一個事務(wù)已經(jīng)更新的數(shù)據(jù),導(dǎo)致返回的結(jié)果有所不同。
虛讀,幻讀:
????????一個事務(wù)讀取幾行記錄后,另一個事務(wù)插入一些記錄,幻讀就發(fā)生了,在后來的查詢中,第一個事務(wù)就會發(fā)現(xiàn)原來沒有的記錄。
查看全部 -
Spring為不同的持久化框架提供了不同PlatformTransactionManager
查看全部 -
事務(wù)的特性:?
原子性 -> 指事務(wù)是一個不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。
?一致性 -> 指事務(wù)前后的數(shù)據(jù)的完整性必須保持一致。?
隔離性 -> 指多個用戶并發(fā)訪問數(shù)據(jù)庫時,一個用戶的事務(wù)不能被其他用戶的事務(wù)所干擾,多個并發(fā)事務(wù)之間數(shù)據(jù)要互相隔離。
?持久性 -> 指一個事務(wù)一旦被提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的,即使數(shù)據(jù)庫發(fā)生故障也不應(yīng)該對其有任何影響。
查看全部 -
spring事務(wù)管理的核心接口,
PlatformTransactionManager的實現(xiàn)類真正執(zhí)行事務(wù)管理;
TransactionDefinition的實現(xiàn)類保存了對事務(wù)管理的配置信息,該類的實例被Manager讀取用來創(chuàng)建執(zhí)行事務(wù)管理的對象;
TransactionStatus的實現(xiàn)類保存了事務(wù)運行中的狀態(tài);
查看全部 -
事務(wù)隔離級別:一般是DEFAULT,用數(shù)據(jù)庫的默認隔離級別
MySQL默認是REPEATABLE_READ
ORACLE默認是READ_COMMITTED
查看全部 -
Spring為不同的持久化框架提供了不同PlatformTransactionManager
查看全部 -
聲明式事務(wù)管理:代理方式(Spring Aop)
查看全部 -
單元測試。
查看全部
舉報