首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

c3p0在spring停的配置过程

2013-03-26 
c3p0在spring下的配置过程前几天在配置hibernate的c3p0连接池时报出了死锁的异常。经过一顿的学习,现在项目

c3p0在spring下的配置过程
前几天在配置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=rootc3p0.password=rootc3p0.driverClass=com.mysql.jdbc.Driverc3p0.acquireIncrement=1c3p0.maxIdleTime=60c3p0.maxPoolSize=200c3p0.minPoolSize=50c3p0.initialPoolSize=300


3、在spring中对DataAccess的配置如下:
<bean id="dataSource"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"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连接池详细配置。 1 楼 somefuture 2009-11-05   很有用。。

热点排行