自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate JDBC事務學習經驗

開發(fā) 后端
這里介紹Hibernate JDBC事務總是和一個數據庫連接(或一個Session)相關聯(lián)的。JTA事務則可以跨越多個數據連接(或多個Session),這些連接還可以是不同數據庫的連接,JTA事務一般由容器進行管理。

在向大家詳細介紹Hibernate JDBC事務之前,首先讓大家了解下Hibernate類的initialize()方法,然后全面介紹Hibernate JDBC事務。

Hibernate類的initialize()方法

initialize()方法強制Hibernate立即加載指定實體所關聯(lián)的對象和集合。Hibernate類中還有其他幾個很有用但不適很常用的方法。

映射文件中的lazy屬性

在Hibernate3中,class元素的lazy屬性默認是true,如果不需要,則需要顯示指定為lazy="false",否則,操作load返回的對象會拋異常。另外Hibernate3中還可以為實體屬性指定lazy屬性。

Hibernate JDBC事務和JTA事務

Hibernate本身沒有事務管理功能,它依賴于JDBC或JTA的事務管理功能,在Hibernate配置文件中,如果不顯式指定Transaction的工廠類別屬性hibernate.transaction.factory_class的配置,則默認為JDBC事務:

  1. <property name="hibernate.transaction.factory_class">
    org.hibernate.transaction.JDBCTransactionFactory</property> 

在通過SessionFactory獲取到Session后,與Session相關聯(lián)的JDBC Connection實例就被設定為false。

特別注意:如果數據庫不支持事務,比如MySQL的MyISAM引擎的表就不支持事務,聲明事務也不會起作用。要使MySQL5的表支持事務,則可以指定表的引擎類型為InnoDB。如果是學習或者研究,目前***還是使用PostgreSQL 8.3或DB2、Oracle。

Hibernate JDBC事務總是和一個數據庫連接(或一個Session)相關聯(lián)的。
JTA事務則可以跨越多個數據連接(或多個Session),這些連接還可以是不同數據庫的連接,JTA事務一般由容器進行管理。編程只要在多個操作單元的開始和結束定義JTA事務的邊界即可。

特別注意:如果使用了JTA事務,則不能再用在JDBC式的事務來管理每個Session的操作,否則會出錯。為了程序的的通用性,一般來說,都是使用Hibernate JTA事務來構建應用,這使用任何環(huán)境。當然,也可以使用事務代理為每個JDBC的操作方法加入事務控制。這樣也為程序以后移植到JTA容器事務上帶來很大方便。其實現在可以使用Spring的事務管理,與Hibernate結合的非常***。

【編輯推薦】

  1. Hibernate類庫簡單描述
  2. 淺析Hibernate延遲加載
  3. Spring Hibernate簡單討論
  4. 介紹Hibernate版本的更新
  5. 簡單講述Hibernate實例
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-28 10:05:27

Hibernate基礎

2009-09-23 10:49:08

Hibernate D

2009-09-22 10:46:00

Hibernate項目

2009-07-23 13:30:46

JDBC事務

2009-09-24 15:53:00

Hibernate J

2009-07-09 16:01:27

2009-09-22 11:16:27

Hibernate經驗

2009-09-23 17:41:05

Hibernate事務

2009-09-23 12:48:54

Hibernate I

2009-07-06 18:29:55

2009-06-30 16:41:12

Hibernate的事

2009-09-22 17:25:41

優(yōu)化Hibernate

2009-09-29 16:32:11

OJB Hiberna

2009-06-19 15:28:31

JDBC分布式事務

2009-09-27 14:53:38

Hibernate S

2009-09-25 17:26:55

使用Hibernate

2009-07-23 14:10:38

Hibernate J

2009-09-24 14:12:22

Hibernate數據

2009-06-08 17:56:00

SpringJDBC事務

2009-09-25 16:55:08

Hibernate初始
點贊
收藏

51CTO技術棧公眾號