日期:2014-05-16  浏览次数:20433 次

spring下 C3P0 数据库连接池配置
一、引用强文:
http://jody.iteye.com/blog/207977
此句尤为紧要:
引用
对Spring 管理的数据源(dataSource)没有改变。当Hibernate中调用一个sessionFactory时,得到的数据源(dataSource)只是在Spring中通过JDBC驱动获取和数据源。没有通过数据库连接池来管理数据库连接。所以当数据库连接达到一定的数量时,就出现无法获取数据库连接的现像。

二、提醒:
1.Hibernate内建的数据库连接池有三个缺省配置、c3p0、proxool。如果想不用缺省的,必须去掉属性:connection.pool_size,换成相应的连接池的属性。
<bean id="dataSource"
		class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUrl"
			value="jdbc:mysql://localhost/zfzy?useUnicode=true&amp;characterEncoding=gbk" />
    <property name="maxPoolSize" value="20"/>  
    <property name="minPoolSize" value="10"/>  
    <property name="idleConnectionTestPeriod" value="30"/>  
    <property name="acquireIncrement" value="5"/>  
    <property name="properties">  
            <props>  
                <prop key="user">root</prop>  
                <prop key="password">123456</prop>  
            </props>  
    </property>  
	</bean>
	
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="mappingResources">
			<list>
				<value>org/zfzy/model/Counter.hbm.xml</value>
				<value>org/zfzy/model/Info.hbm.xml</value>			
				<value>org/zfzy/model/Topic.hbm.xml</value>
				<value>org/zfzy/model/Subject.hbm.xml</value>
				<value>org/zfzy/model/Author.hbm.xml</value>
				<value>org/zfzy/model/Book.hbm.xml</value>
				<value>org/zfzy/model/Gwyzl.hbm.xml</value>
				<value>org/zfzy/model/GwyzlTopic.hbm.xml</value>
				<value>org/zfzy/model/Acl.hbm.xml</value>
				<value>org/zfzy/model/Role.hbm.xml</value>
				<value>org/zfzy/model/User.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.c3p0.max_size">20</prop>
				<prop key="hibernate.c3p0.min_size">10</prop>
				<prop key="hibernate.c3p0.timeout">120</prop>
				<prop key="hibernate.c3p0.max_statements">100</prop>
				<prop key="hibernate.c3p0.idle_test_period">120</prop>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<prop key="show_sql">false</prop>
				<prop key="hibernate.generate_statistics">false</prop>			
			</props>
		</property>
	</bean>