发表于: 2017-10-29 22:06:12
3 790
今天学习的内容:
关于数据连接池的知识。
在jdbc.properties里面的配置如下:
在applicationContext.xml中的配置如下图所示:
<!--声明bean,,,未将DataSource声明为Bean,则无法使用数据库事务.-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<!-- c3p0连接池的私有属性 -->
<!-- 连接池中的保留的最大连接数。Default:15 -->
<property name="maxPoolSize" value="30"/>
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize" value="5"/>
<!-- 关闭连接后不自动commit(连接关闭时默认将所有未提交的操作回滚。Default:false) -->
<property name="autoCommitOnClose" value="false"/>
<!-- 获取连接超时时间 (当连接池用完时客户端调用getConnection()后等待获取新连接的时间,
超时后将抛出 SQLException,如设为0则无限期等待。单位毫秒。Default: 0)-->
<property name="checkoutTimeout" value="10000"/>
<!-- 当获取连接失败重试次数-->
<property name="acquireRetryAttempts" value="10"/>
<!-- 当连接池中的连接耗尽的时候 c3p0一次同时获取的连接数。Default:3 -->
<property name="acquireIncrement" value="5"/>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60" />
<!-- JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个
connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements和maxStatementsPreConnection均为0,则缓存被关闭。Default:0-->
<property name="maxStatements" value="5"/>
<!-- c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能
通过多线程实现多个操作同时被执行。Default:3-->
<property name="numHelperThreads" value="5"/>
<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize" value="5"/>
</bean>
注意:数据连接池中的conn关闭,并不是真正的关闭数据库连接,而是把连接还给了数据连接池。
明天学习Spring+Mybatis的知识。
评论