-
一致性查看全部
-
原子性查看全部
-
事務(wù)特性: 原子性,一致性,隔離性,持久性查看全部
-
什么是事務(wù)查看全部
-
sping 編程式事務(wù)管理 spring 聲明式管理查看全部
-
使用xml配置聲明式事務(wù) 基于tx/aop查看全部
-
使用xml配置聲明式事務(wù)查看全部
-
+.*(..) 接下來的子類,任意的方法,任意的參數(shù)查看全部
-
編程時事務(wù)管理查看全部
-
聲明事務(wù)比較好查看全部
-
5、編程式事務(wù)管理 為了簡化設(shè)置事務(wù)的代碼量,提供了TransactionTemplate事務(wù)管理模版類.在哪個地方需要用到事務(wù),那么就在哪個地方注入這個模版.真正進(jìn)行事務(wù)管理是由事務(wù)管理器來完成. ①配置事務(wù)管理器:TranscationManager,一般在不適用Hibernate的情況下,使用DataSourceTranscationManager,需要注入數(shù)據(jù)源 ②配置事務(wù)管理器的事務(wù)管理的模板TransactionTemplate依賴于DataSourceTransactionManager數(shù)據(jù)源事務(wù)管理器(PlatformTransactionManager平臺事務(wù)管理器的實現(xiàn)類). ③配置文件中引入TransactionTemplate類,把數(shù)據(jù)源事務(wù)管理器對象注入到使用的事務(wù)的service層的類中,作為該bean的transactionManager屬性. DataSourceTransactionManager數(shù)據(jù)源管理器又依賴于DataSource.因此把數(shù)據(jù)源對象注入到數(shù)據(jù)源管理器的dataSource屬性中. ④在service中,要定義一個TransactionTemplate的成員變量,并生成set()方法.因此要把TransactionTemplate的bean注入到Service實體類中的TransactionTemplate類型的屬性中。 執(zhí)行transcationTemplate提供的execute方法,方法中進(jìn)行事務(wù)的操作,這個方法中有個參數(shù),transcationcallback,如果事務(wù)出現(xiàn)回滾,將會調(diào)用這個參數(shù)進(jìn)行操作。如果匿名內(nèi)部類要拿到外層包裹它的方法的參數(shù),那么要將參數(shù)修飾成final 這里調(diào)用模板方法將兩個dao操作放在一個事物里查看全部
-
事務(wù)4個特性查看全部
-
本節(jié)課源碼分享: 鏈接:http://pan.baidu.com/s/1i3jexRR 密碼:yj5n查看全部
-
事務(wù)的傳播行為:主要是解決業(yè)務(wù)層方法之間的相互調(diào)用的問題 事務(wù)的傳播行為有七種,又分為三類: 第一類共同點(diǎn):如果 A 方法中有事務(wù),則調(diào)用 B 方法時就用該事務(wù),即:A和B方法在同一個事務(wù)中。 PROPAGATION_REQUIRED:如果 A 方法中沒有事務(wù),則調(diào)用 B 方法時就創(chuàng)建一個新的事務(wù),即:A和B方法在同一個事務(wù)中。 PROPAGATION_SUPPORTS:如果 A 方法中沒有事務(wù),則調(diào)用 B 方法時就不使用該事務(wù)。 PROPAGATION_MANDATORY:如果 A 方法中沒有事務(wù),則調(diào)用 B 方法時就拋出異常。 第二類共同點(diǎn):A方法和B方法沒有在同一個事務(wù)里面。 PROPAGATION_REQUIRES_NEW:如果 A 方法中有事務(wù),則掛起并新建一個事務(wù)給 B 方法。 PROPAGATION_NOT_SUPPORTED:如果 A 方法中有事務(wù),則掛起。 PROPAGATION_NEVER:如果 A 方法中有事務(wù),則報異常。 第三類:如果 A 方法有的事務(wù)執(zhí)行完,設(shè)置一個保存點(diǎn),如果 B 方法中事務(wù)執(zhí)行失敗,可以滾回保存點(diǎn)或初始狀態(tài)。查看全部
-
2、事物管理器PlatfromTransactionManager Spring為不同的持久化框架提供了不同的PalafromTransactionManager接口實現(xiàn) (1)org.springframework.jdbc.datasource.DataSourceTransactionManager 使用Spring JDBC 或iBatis進(jìn)行持久化數(shù)據(jù)時使用 (2)org.springframework.orm.hibernate3.HibernateTransactionManager 使用Hibernate3.0版本進(jìn)行持久化數(shù)據(jù)時使用 3、事務(wù)隔離的級別 DEFAULT 使用后端數(shù)據(jù)庫默認(rèn)的隔離級別(spring中的選擇項) read_uncommited 允許讀取未提交的改變了的數(shù)據(jù),可能導(dǎo)致臟、幻、不可重復(fù)讀 read_committed 允許并發(fā)事務(wù)已經(jīng)提交后讀取,可防止臟讀,但幻讀和 不可重復(fù)讀 仍可發(fā)生 repeatable_read 虛讀可能發(fā)生 serializable 最慢,保證不發(fā)生臟、虛、不可重復(fù)讀 臟讀:讀取了另一個事務(wù)改寫還未提交的數(shù)據(jù),如果這些數(shù)據(jù)被回滾 不可重復(fù)讀:由于多次讀取期間另一事務(wù)對其修改,導(dǎo)致讀取同一數(shù)據(jù)返回的結(jié)果有所不同 幻讀:一個事務(wù)讀取另一個事務(wù)還未inser插入的記錄,導(dǎo)致再次查詢出現(xiàn)原來沒有的記錄查看全部
舉報
0/150
提交
取消