偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hibernate JDBC連接詳解

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

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

Hibernate JDBC連接

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

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

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

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

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

表 1.  Hibernate JDBC屬性

屬性名

用途

hibernate.connection.driver_class

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

hibernate.connection.url

jdbc URL

hibernate.connection.username

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

hibernate.connection.password

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

hibernate.connection.pool_size

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

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

C3P0是一個(gè)隨Hibernate一同分發(fā)的開源的JDBC連接池, 它位于lib目錄下。 如果你設(shè)置了hibernate.c3p0.*相關(guān)的屬性, Hibernate將使用 C3P0ConnectionProvider來緩存JDBC連接. 如果你更原意使用Proxool, 請參考發(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 配置成從注冊在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ù)庫用戶 (可選)

hibernate.connection.password

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

這是一個(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"開頭. 例如, 你可能會使用hibernate.connection.charSet來指定字符集charSet.

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

【編輯推薦】

  1. Hibernate中Criteria攻略詳解
  2. 簡述Hibernate三種查詢的應(yīng)用
  3. 談?wù)凥ibernate為何是Java開源項(xiàng)目
  4. 淺析為何學(xué)習(xí)Hibernate
  5. 淺析Hibernate VO與PO區(qū)別
責(zé)任編輯:仲衡 來源: 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-09-21 17:33:50

Hibernate基礎(chǔ)

2009-09-24 17:24:20

Hibernate S

2009-07-23 15:17:54

JDBC連接Acces

2009-09-27 13:57:19

Hibernate樹形

2009-07-23 14:10:38

Hibernate J

2009-06-02 14:46:26

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

2009-07-08 17:17:16

JDBC調(diào)用存儲過程

2009-09-23 16:30:01

Hibernate f

2009-09-24 13:03:38

Hibernate C

2009-09-22 17:25:41

優(yōu)化Hibernate

2010-04-19 08:51:30

2009-07-23 13:30:46

JDBC事務(wù)

2009-09-27 10:28:12

Hibernate.p

2009-09-22 15:04:37

Hibernate M

2009-09-23 14:00:07

Hibernate連接
點(diǎn)贊
收藏

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