1Hibernate的配置。
- 为了能在不同的工作环境下工作,具有大量的参数配置,所有属性的名字和语义都在org.habernate.Environment.
属性名 | 用途 |
hibernate.connection.driver_class | jdbc驱动类 |
hibernate.connection.url | jdbc URL |
hibernate.connection.username | 数据库用户 |
hibernate.connection.password | 数据库用户密码 |
hibernate.connection.pool_size | 自带连接池容量上限数目 |
连接池属性
hibernate连接池
1:使用Hibernate自带连接池(算法还不成熟)
2:使用配置文件指定的数据库连接池卡
3:从容器中获得连接池(如Tomcat)
出于性能和稳定性考虑使用第三方连接池 C3P0 Proxool
Hibernate.c3po.min_size | 连接池中可用数据库连接的最小数目 |
Hibernate.c3po.max_size | 连接池中所有数据库连接的最大数量 |
Hibernate.c3po.time_out | 数据库连接的超时时间 |
Hibernate.c3po.max_statement | 可以被缓存的PrearedStatement的最大数目 |
<property>
name="hibernate.connection.provider_class">org.hibernate.connevtion.C3P0nnectionProvider
</property>
<!--最大连接数-->
<property name="hibernate.c3p0.max_size">20</property>
<!--最小连接数-->
<property name="hibernate.c3p0.min-size>5</property>
<!--获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒-->
<property name="hibernate.c3p0.timeout">120</property>
<!--最大的PreparedStatement的数量-->
<property name="hibernate.c3p0.max_statments">120</property>
<!--每个120秒检查连接池李的空闲连接,单位是秒-->
<property name="hibernate.c3p0.idel_test_period">120</property>
<!--当连接池里面连接用完的时候,c3p0一下获取新的连接数-->
<hibernate name="hibernate.c3p0.acquire_increment">2</property>
连接池的属性:
- 导入 proxool-0.9.0RC3.jar 包
- 创建 proxool .xml 文件和 hibernate.cfg.xml 放在一起
<?xmlversion="1.0" encoding="utf-8"?>
<something-else-entirely>
<proxool>
在hibernate.cfg.xml中作配置
<propertyname=“proxool.pool_alias”>xml-test</property>
<!--这个名字要和XML文件中的别名要对应-->
<property name=“proxool.xml”>Proxool.xml</property>
<!--这个是建立的XML文件的名字-->
<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<propertyname=“proxool.pool_alias”>xml-test</property>
<!--这个名字要和XML文件中的别名要对应-->
<property name=“proxool.xml”>Proxool.xml</property>
<!--这个是建立的XML文件的名字-->
<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
从容器中获取得到连接池
<propertyname=”hibernate.connection.datasource”>java:/comp/env/jdbc/test</property>