Hibernate的事務管理

2021-07-02 22:48:38 字數 1241 閱讀 7674

事務就是指作為單個邏輯工作單元執行的一組資料操作,這些操作要麼全部成功,要麼全部失敗,以保證資料的一致性和完整性

事務具有以下acid屬性:

a(atomic)原子性:事務是由乙個或者多個行為綁在一起組成,好像是乙個單獨的工作單元。原子性確保在事務中的所有操作要麼都發生,要麼不發生。

c(consistent)一致性:一旦乙個事務結束了(不管成功與否),系統所處的狀態和它的業務規則是一致的。即資料應當不會被破壞。

i(isolated)隔離性:事務應該允許多個使用者操作同乙個資料,乙個使用者的操作不會和其他使用者操作相混淆。

d(durable)永續性:一旦事務完成,事務的記過應該持久化。

資料庫管理系統採用日誌來保證事務的原子性、一致性和永續性。日誌記錄了事務對資料庫所做的更新,如果某個事務在執行過程中發生錯誤,就可以根據日誌撤銷事務對資料庫所做的更新,是資料庫退回到執行事務的前期初始狀態。資料庫管理系統採用鎖機制來實現事務的隔離性。當多個事務同時更新資料庫相同的資料時,只允許持有鎖的事務能更新該資料,其他事務必須等待,直到前乙個事務釋放了鎖,其他事務才有機會更新資料。

jdbc中使用事務

在jdbc api中提供了一下方法控制事務。

setautocommit(boolean autocommit):設定是否自動提交事務

commit():提交事務

rollback():撤銷事務

hibernate 事務管理

hibernate對jdbc進行了輕量級的物件封裝,hibernate本身在設計時並不具備事務處理功能,平時所用的hibernate的事務,只是將底層的jdbctransaction或者jtatransaction進行封裝,在外面套上transaction和session的外殼,其實底層都是通過委託底層的jdbc或jat來實現事務的排程功能。

hibernate使用jdbc事務:在hibernate.cfg.xml中指定使用哪一種事務

org.hibernate.transaction.jdbctransactionfactory

hibernate使用jta事務:
org.hibernate.transaction.jtatransactionfactory

Hibernate事務管理

一 問題 什麼是事務?事務就是邏輯上的一組操作,組成這組操作的各個單元要麼全部成功,要麼全都失敗。二 問題 事務四個特性?1.原子性 不可分割 2.一致性 事務在執行前後,要保證資料的一致。3.隔離性 乙個事務在執行的過程中,不應該受到其它事務的干擾。4.永續性 事務一旦結束,資料持久化到資料庫。三...

Hibernate事務管理

問題 什麼是事務?事務就是邏輯上的一組操作,組成這組操作的各個單元要麼全部成功,要麼全都失敗。問題 事務四個特性?原子性 強調事務是不可分割最小單元 一致性 事務在執行前後,要保證資料的一致。隔離性 乙個事務在執行的過程中,不應該受到其它事務的干擾。永續性 事務一旦結束,資料持久化到資料庫。問題 不...

Hibernate的事務管理

1.配置 檔案 41.業務開始之前開啟事務,業務結束之後關閉事務,業務執行過程 現異常,回滾事務。2.在hibernate中,確保使用同乙個 session物件,開發人員需要呼叫sf.getcurrentsession 方法即可獲得與 當前執行緒繫結的session物件。3.呼叫getcurrent...