Hibernate交易管理

來源:互聯網
上載者:User

標籤:repeat   資料丟失   安全性   查詢   介紹   資料持久化   hibernate   upd   交易管理   

1.1  H ibernate交易管理 1.1 事務介紹

問題:什麼是事務?

事務就是邏輯上的一組操作,組成這組操作的各個單元要麼全部成功,要麼全都失敗。

問題:事務四個特性?

原子性:強調事務是不可分割最小單元

一致性:事務在執行前後,要保證資料的一致。

隔離性:一個事務在執行的過程中,不應該受到其它事務的幹擾。

持久性:事務一旦結束,資料持久化到資料庫。

問題:不考慮事務的隔離性,會產生什麼問題?

寫問題:丟失更新

1)產生丟失更新的原因

丟失更新就是兩個不同的事務(或者開啟兩個線程)在某一時刻對同一資料進行讀取後,先後進行修改。導致第一次操作資料丟失。

2)解決方式

使用資料庫鎖機制防止資料丟失

(1)共用說

共用 (S) 鎖允許並發事務讀取 (SELECT) 一個資源。資源上存在共用 (S) 鎖時,任何其它事務都不能修改資料。一旦已經讀取資料,便立即釋放資源上的共用 (S) 鎖,除非將交易隔離等級設定為可重複讀或更進階別,或者在事務生存周期內用鎖定提示保留共用 (S) 鎖

(2)排它鎖

排它 (X) 鎖可以防止並發事務對資源進行訪問。其它事務不能讀取或修改排它 (X) 鎖鎖定的資料。

 

讀問題:髒讀、不可重複讀取、虛度

髒讀:一個事務讀取到另一個事務的未提交資料

【注釋說明】例如在執行update操作時,這個事務未提交,資料庫的資料就沒有發生該表;此時再執行select操作時,第二個事務就能讀取到更新資料之後的資料資訊;問題是資料庫的資料沒有發生改變,但select查詢的資料是與資料庫中的資料不一致了。

不可重複讀取:一個事務讀取到另一個事務提交的資料(主要是指update),會導致兩次讀取的結果不一致。

【注釋說明】在執行update操作時,

 

虛讀(幻讀): 一個事務讀取到另一個事務提交的資料(主要是指insert),會導致兩次讀取結果不一致.

問題:對於上述問題如何解決?

處理事務:效率越來越低,但安全性越來越高

我們可以通過設定隔離等級來解決讀的問題.

READ_UNCOMMITED 讀取未提交:它引發所有的隔離問題

READ_COMMITTED   讀已提交,阻止髒讀:可能發生不可重複讀取與虛讀.

REPEATABLE_READ    重複讀  阻止髒讀,不可重複讀取:可能發生虛讀

    SERIALIZABLE        序列化 解決所有問題 不允許兩個事務,同時操作一個目標資料。(效率低下,但操作安全是最安全的)

 

ORACLE  預設的是交易隔離等級  READ_COMMITTED

MYSQL  預設的交易隔離等級    REPEATABLE_READ

 

1.2 Hibernate中設定交易隔離等級

hibernate.connection.isolation 

它可取的值有 1 2 4 8

1代表的交易隔離等級為READ UNCOMMITTED

2代表的交易隔離等級為READ COMMITTED

4.代表的交易隔離等級為 REPEATABLE READ

8代表的交易隔離等級為 SERIALIZABLE

 

在hibernate.cfg.xml檔案中配置

<!-- 設定交易隔離等級-->

< property name=”hibernate.connection.isolation”>4</property>

說明:hibernate.connection.isolation 

它可取的值有 1 2 4 8

1代表的交易隔離等級為READ UNCOMMITTED

2代表的交易隔離等級為READ COMMITTED

4.代表的交易隔離等級為 REPEATABLE READ

8代表的交易隔離等級為 SERIALIZABLE

 

Hibernate交易管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.