今主流且稳定的数据源,也是Hibernate支持的第三方连接池产品:C3P0,Proxool
Hibernate自带的连接池不稳定,有BUG;缺乏容错能力和大批量响应
C3P0
Hibernate中的配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
... ...
<!-- 使用C3P0连接池 -->
<!--在连接池中可用数据库连接的最小数目-->
<property name="c3p0.min_size">5</property>
<!--在连接池中所有数据库连接的最大数目-->
<property name="c3p0.max_size">30</property>
<!-- 设定数据库连接的超时时间-->
<property name="c3p0.time_out">1800</property>
<!--可以被缓存的PreparedStatement的最大数目-->
<property name="c3p0.max_statement">50</property>
... ...
</session-factory>
</hibernate-configuration>
Proxool
第一步,配置单独的连接文件ProxoolConf.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<!-- 连接池的别名可以随便写,但注意的是后面在hibernate部分要对应 -->
<alias>weiPool</alias>
<!--proxool只能管理由自己产生的连接 -->
<driver-url>jdbc:mysql://192.168.235.26:3306/mysql</driver-url>
<driver-class> com.mysql.jdbc.Driver </driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="mysql" />
</driver-properties>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!--指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->
<maximum-new-connections>20</maximum-new-connections>
<!-- 最少保持的空闲连接数 -->
<prototype-count>5</prototype-count>
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数 -->
<minimum-connection-count>10</minimum-connection-count>
</proxool>
</something-else-entirely>
第二步,将上面单独配置的Proxoolcofg.xml应用到Hibernate中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
... ...
<!-- 定义Proxool数据库连接池 -->
<!--这个名字要和上面XML文件中的别名要对应啊-->
<property name="proxool.pool_alias">weiPool</property>
<!--这个你刚才上面建立的XML文件的名字-->
<property name="proxool.xml">ProxoolConf.xml</property>
<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
... ...
</session-factory>
</hibernate-configuration>
分享到:
相关推荐
5. **hibernate-c3p0**和**hibernate-ehcache**: 这两个是连接池和缓存服务的提供者,分别对应C3P0和Ehcache。它们用于优化数据库连接的获取和释放,以及缓存数据,提高性能。 6. **hibernate-commons-annotations*...
--是否启用C3P0连接池--> <property name="c3p0.acquireIncrement">5</property> <!--初始化连接池大小--> <property name="c3p0.minSize">5</property> <!--最大连接池大小--> <property name="c3p0.maxSize">20...
在上述配置中,我们通过`hibernate.proxool.properties`指定了Proxool的配置文件路径,`hibernate.proxool.pool_alias`设置了连接池的别名,这个别名需要与Proxool配置文件中的alias一致。 接下来,我们需要创建...
- **连接池**: 配置合适的连接池,如HikariCP或C3P0,可以有效管理数据库连接,减少资源消耗。 总的来说,`hibernate-jpa-2.1-api-1.0.0.final.jar`为开发者提供了丰富的JPA 2.1特性的实现,使得在Java项目中使用...
Hibernate通过DataSource接口与连接池进行交互,配置连接池主要是配置Hibernate的`hibernate.c3p0`或`hibernate.connection.provider_class`等相关属性,选择合适的连接池实现,如C3P0、DBCP、Druid、HikariCP等。...
**标题:“Hibernate配置连接池整理”** 在Java开发中,数据访问层的性能优化往往离不开高效的数据连接管理,而连接池就是实现这一目标的关键技术。Hibernate作为一款强大的对象关系映射(ORM)框架,它提供了与...
数据库连接池是应用程序管理和维护数据库...总的来说,合理配置和使用数据库连接池是优化Hibernate应用性能的关键步骤之一,它有助于提升系统整体的运行效率,减少资源浪费,同时也便于监控和管理数据库连接的状态。
-- 配置连接池 --> <!-- 更换为对应的连接池实现 --> <property name="hibernate.connection.pool_size">10 <property name="hibernate.c3p0.min_size">5 <property name="hibernate.c3p0.max_size">20 ... ...
4. 数据库连接池集成:内置了HikariCP作为默认的连接池,提供更快、更稳定的数据库连接管理。 5. 其他改进:包括对JDBC 4.2的兼容,以及对Java 8日期时间API的支持等。 三、核心概念 1. 映射配置:通过Hibernate的...
5. 性能调优:根据项目需求调整缓存策略、连接池配置等,提升系统性能。 总结,Hibernate Annotations 3.4.0.GA版本在提供便利的同时,也带来了更多灵活性和可扩展性。理解并熟练掌握这些注解和特性,能够帮助...
2. **默认连接池**:未配置连接池时,Hibernate会使用内置的连接池,但其性能较差,只适合开发环境。 3. **命名空间变化**:不同Hibernate版本中,连接池提供类的全限定名可能不同,如C3P0在Hibernate 2和3中的配置...
在Hibernate中,JAR包包含了框架的实现和库,如核心API、持久化引擎、C3P0连接池等。 5. **Eclipse插件**:Eclipse是一个流行的Java集成开发环境(IDE),Hibernate为Eclipse提供了插件支持,使得开发者可以直接在...
1. 性能优化:5.3.2.Final版本在性能方面进行了大量优化,包括查询缓存、二级缓存策略以及连接池管理等,提高了数据处理速度和资源利用效率。 2. JPA 2.2支持:该版本全面支持Java Persistence API 2.2规范,引入了...
本文将详细讲解Hibernate2和Hibernate3中如何配置连接池,以及官方推荐的C3P0、Proxool和DBCP等连接池的使用。 首先,我们需要了解的是,Hibernate2和Hibernate3对连接池的支持有所不同。在Hibernate2中,Apache的...
在使用Hibernate进行数据库操作时,合理配置连接池是非常重要的一步。连接池可以帮助我们更高效地管理数据库连接资源,避免频繁创建与销毁数据库连接带来的性能开销。Hibernate支持多种连接池方案,主要包括:默认...
接下来,需要配置Hibernate以使用Oracle数据库和连接池。这通常通过`hibernate.cfg.xml`或`application.properties`来完成。 **示例:hibernate.cfg.xml** ```xml <!DOCTYPE hibernate-configuration PUBLIC "-//...
在实际项目中,开发者需要根据需求选择合适的配置,比如缓存策略、连接池、数据库方言等,以达到最佳的性能和稳定性。同时,理解和熟练运用Hibernate的异常体系、事务管理以及查询优化,也是提升开发效率的关键。 ...
以下是对Hibernate配置连接池的三种常见方法的详细说明: 1. **C3P0连接池配置** C3P0是一个开源的JDBC连接池,适用于Hibernate。配置C3P0连接池主要涉及在`hibernate.cfg.xml`中添加相应的属性。例如: ```xml ...
Hibernate可以通过这些模块与其他连接池如C3P0或内置的连接池配合使用,提高数据库连接的复用率,减少数据库连接的创建和释放带来的开销。 4. **hibernate-tools**:提供了代码生成和逆向工程的功能,可以帮助...
- 使用连接池管理数据库连接,如C3P0或HikariCP,提高数据库操作效率。 - 配置合理的SessionFactory参数,如批处理大小,以优化数据库操作。 - 对频繁的数据库操作进行SQL优化,避免全表扫描和索引失效。 6. **...