在Hibernate中創建連接池,JDBC連接

這是最好的SessoinFactory創建和池JDBC連接你。如果你採取這種方法,很簡單,只要打開的org.hibernate.Session:
Session session = sessions.openSession(); // open a new Session

一旦你開始一個任務,需要對數據庫的訪問,將獲得一個JDBC連接池。

你可以這樣做之前,你首先需要傳遞一些JDBC連接的屬性休眠。所有的Hibernate屬性的名字和語義定義的類org.hibernate.cfg.Environment。最重要的設置JDBC連接配置概述如下。

Hibernate會獲得並池連接使用java.sql.DriverManager,如果你設置以下屬性:

Hibernate JDBC Properties


Hibernate自帶的連接池算法,但是,相當簡陋。它的目的是幫助你開始是不適合用在生產系統中,甚至是性能測試。你應該使用第三方的連接 池,以獲得最佳的性能和穩定性。只需更換hibernate.connection.pool_size的屬性連接池的具體設置。這將關閉 Hibernate自帶的連接池。例如,您可能想用C3P0。

C3P0是一個開源的JDBC連接池,隨Hibernate一同分發的lib目錄中。 Hibernate將使用其org.hibernate.connection.C3P0ConnectionProvider爲連接池,如果你設置 hibernate.c3p0。*性能。如果你想用Proxool,請參閱包裝的hibernate.properties併到Hibernate網站獲 取更多信息。

下面是一個爲C3P0的hibernate.properties樣例文件:

hibernate.connection.driver_class = org.postgresql.Driver
hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
hibernate.connection.username = myuser
hibernate.connection.password = secret
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=50
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

對於內部使用的應用程序服務器,你應該幾乎總是配置Hibernate獲得javax.sql.DataSource的註冊在JNDI的應用程序服務器的連接。您將需要設置以下屬性中的至少一個:

Hibernate Datasource Properties

Property name Purpose
hibernate.connection.datasource datasource JNDI name
hibernate.jndi.url URL of the JNDI provider (optional)
hibernate.jndi.class class of the JNDI InitialContextFactory (optional)
hibernate.connection.username database user (optional)
hibernate.connection.password database user password (optional)

下面是一個應用程序服務器提供的JNDI數據源的hibernate.properties樣例文件:

hibernate.connection.datasource = java:/comp/env/jdbc/test
hibernate.transaction.factory_class = \
org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class = \
org.hibernate.transaction.JBossTransactionManagerLookup
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

從JNDI數據源獲得的JDBC連接將自動參與到容器管理的事務的應用程序服務器。 可以任意連接屬性的連接的屬性名稱由前面加上 “hibernate.connection”的。例如,你可以指定一個字符集連接屬性hibernate.connection.charSet。 你可以定義你自己的插件策略獲得JDBC連接的實現該接口org.hibernate.connection.ConnectionProvider,並 指定您的自定義實現通過hibernate.connection.provider_class屬性。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章