这是最好的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

下面是一个应用程序服务器提供的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属性。