Spring事務隔離級別


  spring沒有事務和隔離級別的實現,而是依賴於具體數據庫里的實現。

  spring-tx包里的,其實主要是通過tx-manager去做事務管理,我們一般說是事務管理器。

  注:mysql 事務隔離級別:https://www.cnblogs.com/Jomini/p/14016414.html

Spring 事務隔離級別  

  TransactionDefinition接口中定義了五個表示隔離級別的常量

1、默認級別  TransactionDefinition.ISOLATION_DEFAULT

  使用后端數據庫默認的隔離界別,MySQL默認采用的REPEATABLE_READ隔離級別,Oracle默認采用的READ_COMMITTED隔離級別。

 

2、未提交讀  TransactionDefinition.ISOLATION_READ_UNCOMMITTED

  最低的隔離級別,允許讀取,允許讀取尚未提交的的數據變更,可能會導致臟讀、幻讀或不可重復讀。

 

3、提交讀 TransactionDefinition.ISOLATION_READ_COMMITTED

  允許讀取並發事務已經提交的數據,可以阻止臟讀,但是幻讀或不可重復讀仍有可能發生。

 

4、重復讀 TransactionDefinition.ISOLATION_REPEATABLE_READ

  對同一字段的多次讀取結果都是一致的,除非數據是被本身事務自己所修改,可以阻止臟讀和不可重復讀,但幻讀仍有可能發生。

 

5、序列化 TransactionDefinition.ISOLATION_SERIALIZABLE

  最高的隔離級別,完全服從ACID的隔離級別。所有的事務依次逐個執行,這樣事務之間就完全不可能產生干擾,也就說,該級別可以阻止臟讀、不可重復讀以及幻讀。但是這將嚴重影響程序的性能。通常情況下也不會用到該級別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM