成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate事務全面介紹

開發 后端
這里介紹Hibernate事務處理機制基于JDBC Transaction.我們也可以通過配置文件設定采用JTA作為事務管理實現。

Hibernate有很多值得學習的地方,這里我們主要介紹Hibernate事務,包括介紹在sessionFactory.openSession()中,Hibernate會初始化數據庫連接等方面。

Hibernate是JDBC的輕量級封裝,本身并不具備事務管理能力。在事務管理層,Hibernate將其委托給底層的JDBC或者JTA,以實現事務管理和調度功能。

Hibernate事務處理機制基于JDBC Transaction.我們也可以通過配置文件設定采用JTA作為事務管理實現:

  1. <hibernate-configuration> 
  2. <session-factory> 
  3. ……  
  4. <property name="hibernate.transaction.factory_class"> 
  5. net.sf.hibernate.transaction.JTATransactionFactory  
  6. <!--net.sf.hibernate.transaction.JDBCTransactionFactory--> 
  7. </property> 
  8. ……  
  9. </session-factory> 
  10. </hibernate-configuration> 

基于JDBC的事務管理將事務管理委托給JDBC 進行處理無疑是最簡單的實現方式,Hibernate事務對于JDBC事務的封裝也極為簡單。
我們來看下面這段代碼:

  1. session = sessionFactory.openSession();  
  2. Transaction tx = session.beginTransaction();  
  3. ……  
  4. tx.commit(); 

從JDBC層面而言,上面的代碼實際上對應著:

  1. Connection dbconn = getConnection();  
  2. dbconn.setAutoCommit(false);  
  3. ……  
  4. dbconn.commit(); 

就是這么簡單,Hibernate并沒有做更多的事情(實際上也沒法做更多的事情),只是將這樣的JDBC代碼進行了封裝而已。

這里要注意的是,在sessionFactory.openSession()中,hibernate會初始化數據庫連接,與此同時,將其 AutoCommit 設為關閉狀態(false)。而其后,在Session.beginTransaction 方法中,Hibernate 會再次確認Connection 的AutoCommit 屬性被設為關閉狀態( 為了防止用戶代碼對session 的Connection.AutoCommit屬性進行修改)。

這也就是說,我們一開始從SessionFactory獲得的session,其自動提交屬性就已經被關閉(AutoCommit=false),下面的代碼將不會對數據庫產生任何效果:

  1. session = sessionFactory.openSession();  
  2. session.save(user);  
  3. session.close(); 

這實際上相當于 JDBC Connection的AutoCommit屬性被設為false,執行了若干JDBC操作之后,沒有調用commit操作即將Connection關閉。如果要使代碼真正作用到數據庫,我們必須顯式的調用Transaction指令:

  1. session = sessionFactory.openSession();  
  2. Transaction tx = session.beginTransaction();  
  3. session.save(user);  
  4. tx.commit();  
  5. session.close(); 

【編輯推薦】

  1. 描述Hibernate檢查id字段
  2. Hibernate Template簡單描述
  3. Hibernate DetachedCriteria學習經驗
  4. 概述Hibernate equals()方法
  5. Hibernate使用Person對象
責任編輯:佚名 來源: 比特網
相關推薦

2009-09-25 09:46:03

Hibernate s

2009-09-28 10:24:58

Hibernate基礎

2009-09-28 13:49:44

Hibernate Q

2009-09-25 17:19:28

Hibernate持久

2009-09-21 16:56:14

Hibernateibatis

2009-09-28 17:27:27

Hibernate A

2009-09-25 16:27:33

Hibernate S

2009-09-28 16:54:34

Hibernate示例

2009-09-24 10:50:31

Hibernate主鍵

2009-09-23 15:50:21

Hibernate u

2009-09-29 10:12:03

Hibernate A

2009-09-22 11:24:07

Hibernate查詢

2009-09-22 15:22:08

Hibernate性能

2009-09-21 17:46:34

Hibernate持久

2009-06-30 16:41:12

Hibernate的事

2009-09-25 11:27:19

Hibernate J

2009-06-17 11:18:02

Hibernate延遲

2009-09-27 17:46:22

Hibernate監聽

2009-09-21 16:40:42

Hibernate可行

2009-09-22 09:27:29

Hibernate P
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区成人 | 日韩国产三区 | 久www| 婷婷一级片 | 九九色综合 | 日韩中文字幕一区 | 91麻豆精品一区二区三区 | 久久久观看 | 操操操日日日 | 成人av免费在线观看 | 91在线精品视频 | 欧美激情在线精品一区二区三区 | 国产精品久久久久久一区二区三区 | 色吧综合网| 不卡一二三区 | 中日韩欧美一级片 | 天堂久久网 | 青青草av网站| 国产精品久久久久久久久久久免费看 | 羞羞的视频网站 | 精品亚洲永久免费精品 | 亚洲欧美一区二区三区视频 | 亚洲欧洲在线看 | 精品欧美乱码久久久久久 | 国产精品毛片一区二区在线看 | 国产成年人小视频 | 欧美韩一区二区三区 | 国产伦精品一区二区三区照片91 | 99福利| 精品乱子伦一区二区三区 | 国产日韩91 | 综合精品 | 国产精品亚洲第一区在线暖暖韩国 | 久久综合色综合 | 可以在线观看av的网站 | 亚洲高清免费视频 | 日皮视频免费 | 人人叉 | 成人一区二区视频 | 日本在线你懂的 | 欧美成人自拍 |