Hibernate自带的连接池算法相当不成熟。 它只是为了让你快些上手,并不适合用于产品系统或性能测试中。
出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size即可。
这将关闭Hibernate自带的连接池。
例如,你可能会想用C3P0.
C3P0是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib目录下。
如果你设置了hibernate.c3p0.*相关的属性, Hibernate将使用 C3P0ConnectionProvider来缓存JDBC连接。
如果你更原意使用Proxool, 请参考发 行包中的hibernate.properties并到Hibernate网站获取更多的信息。
这是一个使用C3P0的 hibernate.properties样例文件(来自Hibernate包中etc目录下):
###########################
### C3P0 Connection Pool###
###########################
#hibernate.c3p0.max_size 2
#hibernate.c3p0.min_size 2
#hibernate.c3p0.timeout 5000
#hibernate.c3p0.max_statements 100
#hibernate.c3p0.idle_test_period 3000
#hibernate.c3p0.acquire_increment 2
#hibernate.c3p0.validate false
在hibernate.cfg.xml文件里面加入如下的配置:
<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</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_statements">100</property>
<!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
完整示例如下(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.PostgreSQLDialec
相关推荐
### Hibernate C3P0 数据库连接池参数详解 在企业级应用开发中,数据库连接池技术扮演着极其重要的角色,它能显著提高系统的性能并优化资源管理。Hibernate 作为 Java 领域中最流行的 ORM(对象关系映射)框架之一...
为了解决上述问题,我们需要对Hibernate的配置文件进行适当调整,并正确设置c3p0连接池的相关参数。 **1. 添加依赖** 确保项目中包含了c3p0的jar包以及SQL Server 2000的JDBC驱动。 **2. 配置Hibernate** 在`...
### hibernate使用c3p0连接池的知识点详解 #### 一、Hibernate与C3P0连接池概述 - **Hibernate**: 是一个全功能的Java持久层框架,它提供了对象关系映射(ORM)功能,使得Java应用可以方便地与数据库进行交互。...
在数据库连接池技术中,c3p0作为一个成熟的、功能强大的开源连接池解决方案,在Java应用开发领域得到了广泛的应用。尤其是在配合ORM框架如Hibernate时,c3p0能够提供高效的数据库连接管理和自动重连机制,有效提升...
C3P0 是一个开源的 J2EE 连接池实现,它提供了一种简单的方法来管理和控制数据库连接资源,可以有效提高应用程序访问数据库的性能。在 Java 应用程序中,频繁地创建和关闭数据库连接会导致性能下降甚至系统崩溃。...
在Hibernate 2.x版本中,默认使用的是一个简单的内部实现,而在Hibernate 3.x版本中则不再推荐使用默认连接池,因为其功能相比其他成熟的第三方连接池如C3P0、DBCP等较为薄弱。 #### 三、C3P0 连接池配置 C3P0是一...
这意味着在使用Hibernate进行数据库操作时,c3p0作为连接池是不可或缺的组件,确保了数据库连接的管理和复用,从而提高性能并减少资源消耗。 **知识点详解** 1. **Hibernate**: Hibernate是Java开发中广泛使用的...
C3P0是一个开源的JDBC连接池,它与Hibernate一起发布,并提供了实现了JDBC3和JDBC2扩展规范的Connection和Statement池的DataSources对象。C3P0连接池的配置涉及到多个方面,用于优化数据库连接的创建、管理和维护。 ...
### c3p0 数据连接池知识点详解 #### 定义 c3p0 是一个成熟且高性能的 JDBC 连接池实现,它最初是作为 Hibernate 的一部分被分发的,旨在为企业级 J2EE 应用提供高效的数据源管理方案。 #### 使用场景 - **兼容性*...
**c3p0连接池详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0由Miquel Llopis创建,因其高效、稳定和易用的特点,被广泛应用于各种Java Web应用中。下面我们...
本文将详细讲解Hibernate2和Hibernate3中如何配置连接池,以及官方推荐的C3P0、Proxool和DBCP等连接池的使用。 首先,我们需要了解的是,Hibernate2和Hibernate3对连接池的支持有所不同。在Hibernate2中,Apache的...
为了确保连接池的健康运行,可以启用连接池的监控和诊断功能,比如C3P0提供了日志输出和监控网页,便于查看连接池的状态,及时发现并解决问题。 总的来说,选择和配置适合的Hibernate连接池是优化数据库性能的关键...
【Hibernate 连接池详解】 在Java开发中,尤其是在企业级应用中,为了提高数据库连接的效率和资源利用率,通常会使用连接池技术。Hibernate,作为一个流行的对象关系映射(ORM)框架,提供了多种连接池的集成方式。...
《c3p0连接池详解及其在Hibernate中的应用》 c3p0连接池,全称为com.mchange.v2.c3p0.ComboPooledDataSource,是一款高效、强大的开源数据库连接池组件。作为Java应用程序中数据库连接管理的重要工具,c3p0能够有效...
**c3p0-0.9.5.2:数据库连接池详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0由Mchange公司开发,版本号0.9.5.2是其一个稳定版本,提供了对Java应用程序...
在Hibernate中,官方推荐的连接池有C3P0、Proxool和DBCP。 1. **Apache DBCP连接池**: - 在Hibernate 2中,DBCP是官方推荐的连接池之一,但在Hibernate 3及更高版本中,由于存在缺陷,不再推荐使用。如果在...