国产精品毛片一区二区,欧美熟妇brazzers,丰满女邻居的嫩苞张开视频,天天爽夜夜爽夜夜爽

南京北大青鳥

全國咨詢電話:15195455103

三分鐘了解北大青鳥
當前位置:南京北大青鳥 > 學(xué)習(xí)園地 > 編程技巧

spring_聲明式事務(wù)

來源:南京北大青鳥張府園校區(qū)? ? ? 作者:IT教育 ? ??

所謂事務(wù)的傳播行為是指,如果在開始當前事務(wù)之前,一個事務(wù)上下文已經(jīng)存在,此時有若干選項可以指定一個事務(wù)性方法的執(zhí)行行為。
聲明式事務(wù)的事務(wù)屬性:
一:傳播行為
二:隔離級別
三:只讀提示
四:事務(wù)超時間隔
 
傳播行為:
所謂事務(wù)的傳播行為是指,如果在開始當前事務(wù)之前,一個事務(wù)上下文已經(jīng)存在,此時有若干選項可以指定一個事務(wù)性方法的執(zhí)行行為。
spring的事務(wù)傳播規(guī)則:
傳播行為 意義
PROPAGATION_REQUIRED 如果當前存在事務(wù),則加入該事務(wù);如果當前沒有事務(wù),則創(chuàng)建一個新的事務(wù)。
PROPAGATION_REQUIRES_NEW 創(chuàng)建一個新的事務(wù),如果當前存在事務(wù),則把當前事務(wù)掛起。
PROPAGATION_SUPPORTS 如果當前存在事務(wù),則加入該事務(wù);如果當前沒有事務(wù),則以非事務(wù)的方式繼續(xù)運行。
PROPAGATION_NOT_SUPPORTED 以非事務(wù)方式運行,如果當前存在事務(wù),則把當前事務(wù)掛起。
PROPAGATION_NEVER 以非事務(wù)方式運行,如果當前存在事務(wù),則拋出異常
PROPAGATION_MANDATORY 如果當前存在事務(wù),則加入該事務(wù);如果當前沒有事務(wù),則拋出異常。
PROPAGATION_NESTED 如果當前存在事務(wù),則創(chuàng)建一個事務(wù)作為當前事務(wù)的嵌套事務(wù)來運行; 如果當前沒有事務(wù),則該取值等價于TransactionDefinition.PROPAGATION_REQUIRED。
  這里需要指出的是,前面的六種事務(wù)傳播行為是 Spring 從 EJB 中引入的,他們共享相同的概念。而 PROPAGATION_NESTED是 Spring 所特有的。以 PROPAGATION_NESTED 啟動的事務(wù)內(nèi)嵌于外部事務(wù)中(如果存在外部事務(wù)的話),此時,內(nèi)嵌事務(wù)并不是一個獨立的事務(wù),它依賴于外部事務(wù)的存在,只有通過外部的事務(wù)提交,才能引起 內(nèi)部事務(wù)的提交,嵌套的子事務(wù)不能單獨提交。如果熟悉 JDBC 中的保存點(SavePoint)的概念,那嵌套事務(wù)就很容易理解了,其實嵌套的子事務(wù)就是保存點的一個應(yīng)用,一個事務(wù)中可以包括多個保存點,每一個嵌套 子事務(wù)。另外,外部事務(wù)的回滾也會導(dǎo)致嵌套子事務(wù)的回滾。
 
 
隔離級別:
隔離級別是指若干個并發(fā)的事務(wù)之間的隔離程度。
spring的事務(wù)隔離級別: 
隔離級別 含義
ISOLATION_DEFAULT 這是默認值,表示使用底層數(shù)據(jù)庫的默認隔離級別。對大部分數(shù)據(jù)庫而言,通常這值就是ISOLATION_READ_COMMITTED。
ISOLATION_READ_UNCOMMITTED 該隔離級別表示一個事務(wù)可以讀取另一個事務(wù)修改但還沒有提交的數(shù)據(jù)。該級別不能防止臟讀和不可重復(fù)讀,因此很少使用該隔離級別。
ISOLATION_READ_COMMITTED 該隔離級別表示一個事務(wù)只能讀取另一個事務(wù)已經(jīng)提交的數(shù)據(jù)。該級別可以防止臟讀,這也是大多數(shù)情況下的推薦值。
ISOLATION_REPEATABLE_READ 該隔離級別表示一個事務(wù)在整個過程中可以多次重復(fù)執(zhí) 行某個查詢,并且每次返回的記錄都相同。即使在多次查詢之間有新增的數(shù)據(jù)滿足該查詢,這些新增的記錄也會被忽略。該級別可以防止臟讀和不可重復(fù)讀。
ISOLATION_SERIALIZABLE 所有的事務(wù)依次逐個執(zhí)行,這樣事務(wù)之間就完全不可能產(chǎn)生干擾,也就是說,該級別可以防止臟讀、不可重復(fù)讀以及幻讀。但是這將嚴重影響程序的性能。通常情況下也不會用到該級別。
 
只讀提示: 
事務(wù)的只讀屬性是指,對事務(wù)性資源進行只讀操作或者是讀寫操作。所謂事務(wù)性資源就是指那些被事務(wù)管理的資源,比如數(shù)據(jù)源、 JMS 資源,以及自定義的事務(wù)性資源等等。如果確定只對事務(wù)性資源進行只讀操作,那么我們可以將事務(wù)標志為只讀的,以提高事務(wù)處理的性能。在 TransactionDefinition 中以 boolean 類型來表示該事務(wù)是否只讀。
 
事務(wù)超時間隔:
所謂事務(wù)超時,就是指一個事務(wù)所允許執(zhí)行的長時間,如果超過該時間限制但事務(wù)還沒有完成,則自動回滾事務(wù)。在 TransactionDefinition 中以 int 的值來表示超時時間,其單位是秒。
 
 
 
 

分享到:

相關(guān)閱讀:

近期文章

搶試聽名額

名額僅剩66名

教育改變生活

WE CHANGE LIVES