久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SPRING注解事務管理

 Java技術館 2012-03-30
引用
大家在使用spring的注解式事務管理時,,對事務的傳播行為和隔離級別可能有點不知所措,下邊就詳細的介紹下以備方便查閱。

事物注解方式: @Transactional

當標于類前時, 標示類中所有方法都進行事物處理

例子:

@Transactional
public class TestServiceBean implements TestService {}

當類中某些方法不需要事物時:

@Transactional
public class TestServiceBean implements TestService {
   
    private TestDao dao;
   
    public void setDao(TestDao dao) {
        this.dao = dao;
    }
   
    @Transactional(propagation = Propagation.NOT_SUPPORTED)
    public List<Object> getAll() {
        return null;
    }
   
}

事物傳播行為介紹:
@Transactional(propagation=Propagation.REQUIRED)
如果有事務, 那么加入事務, 沒有的話新建一個(默認情況下)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不為這個方法開啟事務
@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事務,都創(chuàng)建一個新的事務,原來的掛起,新的執(zhí)行完畢,繼續(xù)執(zhí)行老的事務
@Transactional(propagation=Propagation.MANDATORY)
必須在一個已有的事務中執(zhí)行,否則拋出異常
@Transactional(propagation=Propagation.NEVER)
必須在一個沒有的事務中執(zhí)行,否則拋出異常(與Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS)
如果其他bean調用這個方法,在其他bean中聲明事務,那就用事務.如果其他bean沒有聲明事務,那就不用事務.

事物超時設置:
@Transactional(timeout=30) //默認是30秒

事務隔離級別:
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
讀取未提交數(shù)據(jù)(會出現(xiàn)臟讀, 不可重復讀) 基本不使用
@Transactional(isolation = Isolation.READ_COMMITTED)
讀取已提交數(shù)據(jù)(會出現(xiàn)不可重復讀和幻讀)
@Transactional(isolation = Isolation.REPEATABLE_READ)
可重復讀(會出現(xiàn)幻讀)
@Transactional(isolation = Isolation.SERIALIZABLE)
串行化

@Transactional(propagation=Propagation.NESTED)  
@Transactional (propagation = Propagation.REQUIRED,readOnly=true) //readOnly=true只讀,不能更新,刪除  
@Transactional (propagation = Propagation.REQUIRED,timeout=30)//設置超時時間  
@Transactional (propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)//設置數(shù)據(jù)庫隔離級別

@Transactional(noRollbackFor=Exception.class)//指定不回滾,遇到運行期例外
@Transactional(rollbackFor=Exception.class) //指定回滾,需要捕獲的例外

MYSQL: 默認為REPEATABLE_READ級別
SQLSERVER: 默認為READ_COMMITTED

臟讀 : 一個事務讀取到另一事務未提交的更新數(shù)據(jù)
不可重復讀 : 在同一事務中, 多次讀取同一數(shù)據(jù)返回的結果有所不同, 換句話說,
后續(xù)讀取可以讀到另一事務已提交的更新數(shù)據(jù). 相反, "可重復讀"在同一事務中多次
讀取數(shù)據(jù)時, 能夠保證所讀數(shù)據(jù)一樣, 也就是后續(xù)讀取不能讀到另一事務已提交的更新數(shù)據(jù)
幻讀 : 一個事務讀到另一個事務已提交的insert數(shù)據(jù)

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多