鍍金池/ 教程/ Java/ Hibernate事務(wù)管理
Hibernate繼承映射
Hibernate每個子類一張表(使用XML文件)實例
Hibernate快速入門
Hibernate使用注釋
Hibernate使用xml文件的每個類層次一張表
Hibernate命名查詢
Hibernate每個層次類一張表(使用注釋)
Hibernate組件映射
Hibernate事務(wù)管理
Hibernate二級緩存
集合映射Set(使用xml文件)
Hibernate每個具體類一張表映射(使用XML)
集合映射中的映射列表(使用xml文件)
Hibernate使用Log4j日志記錄(使用properties文件)
Hibernate集合映射
集合Map映射(使用xml文件)
集合Set映射一對多(使用xml文件)
Hibernate查詢語言(HQL)
Hibernate入門程序
Hibernate標(biāo)準(zhǔn)查詢語言
Hibernate使用Log4j日志記錄(使用xml文件)
Hibernate教程
Hibernate體系結(jié)構(gòu)
Hibernate生成器類
Hibernate通過many-to-one元素的一對一映射
集合Map多對多映射(使用xml文件)
Web應(yīng)用程序使用Hibernate
Hibernate一對多映射列表實例(使用xml文件)
Hibernate通過one-to-one元素的一對一映射
Hibernate每個子類一張表(使用注釋)實例
集合映射中的映射包(使用xml文件)
通過Bag一對多映射示例(使用xml文件)
Hibernate緩存
Hibernate每個具體類一張表映射(使用注釋)

Hibernate事務(wù)管理

事務(wù)只是一個工作單位(單元)。 在這種情況下,如果一個步驟失敗,則整個事務(wù)失敗(稱為原子性)。 ACID屬性(原子性,一致性,隔離性和持久性)可以描述事務(wù)。

Hibernate中的事務(wù)接口

在hibernate框架中,我們有Transaction接口來定義工作單元。 它維護(hù)了事務(wù)實現(xiàn)(JTA,JDBC)的抽象。

事務(wù)與Session相關(guān)聯(lián),并通過調(diào)用session.beginTransaction()實例化。

Transaction接口的方法如下:

  1. void begin() 開始一個新的事務(wù)。
  2. void commit() 結(jié)束工作單位,在FlushMode.NEVER中除外。
  3. void rollback() 強(qiáng)制此事務(wù)回滾。
  4. void setTimeout(int seconds) 它為由此實例開始的后續(xù)調(diào)用啟動的任何事務(wù)設(shè)置事務(wù)超時。
  5. boolean isAlive() 檢查交易是否仍然存在。
  6. void registerSynchronization(Synchronization s) 為此事務(wù)注冊用戶同步回調(diào)。
  7. boolean wasCommited() 檢查事務(wù)是否成功提交。
  8. boolean wasRolledBack() 檢查事務(wù)是否成功回滾。

Hibernate中的事務(wù)管理示例

在hibernate中,如果發(fā)生任何異常,最好回滾事務(wù),以便資源可以釋放自由。 我們來看看hibernate中事務(wù)管理的例子。

Session session = null;  
Transaction tx = null;  

try {  
    session = sessionFactory.openSession();  
    tx = session.beginTransaction();  
    //some action  

    tx.commit();  

}catch (Exception ex) {  
    ex.printStackTrace();  
    tx.rollback();  
}  
finally {session.close();}