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