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

Hibernate JDBC連接詳解

開(kāi)發(fā) 后端
Hibernate JDBC連接通常你希望SessionFactory來(lái)為你創(chuàng)建和緩存(pool)JDBC連接. 如果你采用這種方式, 只需要如下例所示那樣。

本文向大家介紹Hibernate JDBC連接,可能好多人還不了解Hibernate JDBC連接,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

Hibernate JDBC連接

通常你希望SessionFactory來(lái)為你創(chuàng)建和緩存(pool)JDBC連接. 如果你采用這種方式, 只需要如下例所示那樣,打開(kāi)一個(gè)Session:

  1. Session session = sessions.openSession(); // open a new Session 

一旦你需要進(jìn)行數(shù)據(jù)訪問(wèn)時(shí), 就會(huì)從連接池(connection pool)獲得一個(gè)JDBC連接.

為了使這種方式工作起來(lái), 我們需要向Hibernate傳遞一些JDBC連接的屬性. 所有Hibernate屬性的名字和語(yǔ)義都在org.hibernate.cfg.Environment中定義. 我們現(xiàn)在將描述JDBC連接配置中最重要的設(shè)置.

如果你設(shè)置如下屬性,Hibernate將使用java.sql.DriverManager來(lái)獲得(和緩存)JDBC連接 :

表 1.  Hibernate JDBC屬性

屬性名

用途

hibernate.connection.driver_class

jdbc驅(qū)動(dòng)類

hibernate.connection.url

jdbc URL

hibernate.connection.username

數(shù)據(jù)庫(kù)用戶

hibernate.connection.password

數(shù)據(jù)庫(kù)用戶密碼

hibernate.connection.pool_size

連接池容量上限數(shù)目

但Hibernate自帶的連接池算法相當(dāng)不成熟. 它只是為了讓你快些上手,并不適合用于產(chǎn)品系統(tǒng)或性能測(cè)試中。 出于最佳性能和穩(wěn)定性考慮你應(yīng)該使用第三方的連接池。只需要用特定連接池的設(shè)置替換 hibernate.connection.pool_size即可。這將關(guān)閉Hibernate自帶的連接池. 例如, 你可能會(huì)想用C3P0.

C3P0是一個(gè)隨Hibernate一同分發(fā)的開(kāi)源的JDBC連接池, 它位于lib目錄下。 如果你設(shè)置了hibernate.c3p0.*相關(guān)的屬性, Hibernate將使用 C3P0ConnectionProvider來(lái)緩存JDBC連接. 如果你更原意使用Proxool, 請(qǐng)參考發(fā) 行包中的hibernate.properties并到Hibernate網(wǎng)站獲取更多的信息.

這是一個(gè)使用C3P0的hibernate.properties樣例文件:

  1. hibernate.connection.driver_class = org.postgresql.Driver  
  2. hibernate.connection.url = jdbc:postgresql://localhost/mydatabase  
  3. hibernate.connection.username = myuser 
  4. hibernate.connection.password = secret 
  5. hibernate.c3p0.min_size=5 
  6. hibernate.c3p0.max_size=20 
  7. hibernate.c3p0.timeout=1800 
  8. hibernate.c3p0.max_statements=50 
  9. hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 

為了能在應(yīng)用程序服務(wù)器(application server)中使用Hibernate, 應(yīng)當(dāng)總是將Hibernate 配置成從注冊(cè)在JNDI中的Datasource處獲得連接,你至少需要設(shè)置下列屬性中的一個(gè):

表 2.  Hibernate數(shù)據(jù)源屬性

屬性名

用途

hibernate.connection.datasource

數(shù)據(jù)源JNDI名字

hibernate.jndi.url

JNDI提供者的URL (可選)

hibernate.jndi.class

JNDI InitialContextFactory (可選)

hibernate.connection.username

數(shù)據(jù)庫(kù)用戶 (可選)

hibernate.connection.password

數(shù)據(jù)庫(kù)用戶密碼 (可選)

這是一個(gè)使用應(yīng)用程序服務(wù)器提供的JNDI數(shù)據(jù)源的hibernate.properties樣例文件:

  1. hibernate.connection.datasource = java:/comp/env/jdbc/test  
  2. hibernate.transaction.factory_class = \  
  3.     org.hibernate.transaction.JTATransactionFactory  
  4. hibernate.transaction.manager_lookup_class = \  
  5.     org.hibernate.transaction.JBossTransactionManagerLookup  
  6. hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 

從JNDI數(shù)據(jù)源獲得的JDBC連接將自動(dòng)參與到應(yīng)用程序服務(wù)器中容器管理的事務(wù)(container-managed transactions)中去.

任何連接(connection)屬性的屬性名都要以"hibernate.connnection"開(kāi)頭. 例如, 你可能會(huì)使用hibernate.connection.charSet來(lái)指定字符集charSet.

通過(guò)實(shí)現(xiàn)org.hibernate.connection.ConnectionProvider接口,你可以定義屬于 你自己的獲得Hibernate JDBC連接的插件策略。通過(guò)設(shè)置hibernate.connection.provider_class, 你可以選擇一個(gè)自定義的實(shí)現(xiàn).

【編輯推薦】

  1. Hibernate中Criteria攻略詳解
  2. 簡(jiǎn)述Hibernate三種查詢的應(yīng)用
  3. 談?wù)凥ibernate為何是Java開(kāi)源項(xiàng)目
  4. 淺析為何學(xué)習(xí)Hibernate
  5. 淺析Hibernate VO與PO區(qū)別
責(zé)任編輯:仲衡 來(lái)源: javanb
相關(guān)推薦

2009-07-09 16:01:27

2009-09-23 12:48:54

Hibernate I

2015-04-27 09:50:45

Java Hibern連接池詳解

2009-09-25 11:27:19

Hibernate J

2009-07-06 18:29:55

2009-07-23 15:17:54

JDBC連接Acces

2009-09-21 17:33:50

Hibernate基礎(chǔ)

2009-09-24 17:24:20

Hibernate S

2009-07-23 14:10:38

Hibernate J

2009-09-27 13:57:19

Hibernate樹(shù)形

2009-06-02 14:46:26

Hibernate關(guān)系映射教程

2009-07-08 17:17:16

JDBC調(diào)用存儲(chǔ)過(guò)程

2009-07-23 13:30:46

JDBC事務(wù)

2010-04-19 08:51:30

2009-09-27 10:28:12

Hibernate.p

2009-09-23 14:00:07

Hibernate連接

2009-09-23 16:30:01

Hibernate f

2009-09-22 17:25:41

優(yōu)化Hibernate

2009-09-24 13:03:38

Hibernate C

2009-09-22 15:04:37

Hibernate M
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)