前几天在配置hibernate的c3p0连接池时报出了死锁的异常。经过一顿的学习,现在项目中已经解决了这个问题,现将其配置记录于下,供自己和有需要的人查阅。
1、在hibernate.properties中添加:
hibernate.connection.provider_class =org.hibernate.connection.C3P0ConnectionProvider
2、将c3p0的常规配置我新建在了自己写的properites中,取名:jdbc.properties,关于c3p0的代码如下:
######C3P0 MySQL config #######
c3p0.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&mysqlEncoding=utf8
c3p0.user=root
c3p0.password=root
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.acquireIncrement=1
c3p0.maxIdleTime=60
c3p0.maxPoolSize=200
c3p0.minPoolSize=50
c3p0.initialPoolSize=300
3、在spring中对DataAccess的配置如下:
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${c3p0.driverClass}"></property>
<property name="jdbcUrl" value="${c3p0.url}"></property>
<property name="user" value="${c3p0.user}"></property>
<property name="password" value="${c3p0.password}"></property>
<property name="acquireIncrement" value="${c3p0.acquireIncrement}"></property>
<property name="initialPoolSize" value="${c3p0.initialPoolSize}"></property>
<property name="maxIdleTime" value="${c3p0.maxIdleTime}"></property>
<property name="maxPoolSize" value="${c3p0.maxPoolSize}"></property>
<property name="minPoolSize" value="${c3p0.minPoolSize}"></property>
<property name="acquireRetryDelay" value="1000"></property>
<property name="acquireRetryAttempts" value="60"></property>
<property name="breakAfterAcquireFailure" value="false"></property>
</bean>
<!--Hibernate SessionFatory-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="lobHandler" ref="lobHandler" />
<property name="configLocations">
<list>
<value>classpath*:/hibernate/hibernate.cfg.xml</value>
</list>
</property>
<property name="configurationClass"
value="org.hibernate.cfg.AnnotationConfiguration" />
<!-- 如果采用hbm 方式
<property name="mappingDirectoryLocations">
<list>
<value>
classpath*:/org/ustb/mis/model/hbm/
</value>
</list>
</property>
-->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.show_sql">
${hibernate.show_sql}
</prop>
<prop key="hibernate.cache.use_query_cache">
${hibernate.cache.use_query_cache}
</prop>
<prop key="hibernate.cache.provider_class">
${hibernate.cache.provider_class}
</prop>
<!-- 配置C3P0ConnectionProvider-->
<prop key="hibernate.connection.provider_class">
${hibernate.connection.provider_class}
</prop>
<prop key="hibernate.current_session_context_class">
${hibernate.current_session_context_class}
</prop>
</props>
</property>
</bean>
其中,属性文件通过如下方式读入:
<!-- 属性文件读入 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:hibernate/jdbc.properties</value>
<value>classpath*:hibernate/hibernate.properties</value>
</list>
</property>
</bean>
对于各个c3p0属性的意义及设置,很多文章都谈到了,我参考的是:
http://msq.iteye.com/的文章:C3P0连接池详细配置。
分享到:
相关推荐
spring 配置c3p0 的配置文件 注意是 配置文件
Spring_c3p0与dbcp数据源_的配置.doc 很不错的哦!拿出来和大家一起学习!
各种Spring c3p0配置方法,包含详细解释,可以方便选择自己喜欢的配置方式
内容概要:c3p0连接池需要jar包.rar以及相关配置文件 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。 适合人群:正在学习...
在Spring配置文件中配置数据源教程及xml配置参考源码
c3p0连接池参数配置
c3p0在spring中的配置及所需jar包,一般用hibernate时用c3p0比较稳定一些。
一个spring + c3p0 连接池的例子,通过这个例子可以学习简单的spring配置和c3p0连接池的知识
本基础框架采用 spring mvc+c3p0+jpa的配置方式,里面配置了spring事务管理,异常处理,登陆拦截器 等,全部自己动手搭建,经过测试通过。如果你苦于一个万能的java ee框架搭建,你可以参考。个人喜欢专研技术,但不...
C3P0:数据库连接池技术 步骤: 1.导入jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar 2.定义配置文件 名称:c3p0.properties 或者 c3p0-config.xml 路径:直接将文件放在src目录下即可 3.创建数据库连接池...
Spring +struts+c3p0 框架demo 简单实用
技术分享:配置Spring数据源c3p0与dbcp
Spring使用DriverManagerDataSource和C3P0分别配置MySql6.0.6数据源
基于JPA的C3P0连接的配置,里面有详细的jdbc的配置 以及spring整合的配置。
在Spring3中配置数据源,包括DBCP,C3P0,Proxool,Bonecp主要的数据源,里面包含这些数据源的jar文件和依赖文件及配置文件。。 如Bonecp目前听说是最快的数据源,速度是传统的c3p0的25倍, bonecp.properties文件: ...
主要介绍了Spring通过c3p0配置bean连接数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
技术分享:Spring的数据源配置 DBCP、C3P0、JNDI
技术分享:Spring的数据源配置 DBCP、C3P0、BoneCP、JNDI
c3p0 的连接方式,包括spring配置和init properties
技术分享:Spring配置数据源的三种方式 (dbcp,c3p0,jndi)