关于数据库连接池的比较网上有很多比较,今天在做压力测试时亲自试了一下,却是比C3P0性能高很多,在这里不多做介绍。在这里先将连接池的配置贴上来。
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close">
<!-- 数据库驱动 -->
<property name="driverClass" value="${oracle.driver}" />
<!-- 相应驱动的jdbcUrl -->
<property name="jdbcUrl" value="${oracle.url}" />
<!-- 数据库的用户名 -->
<property name="username" value="${oracle.username}" />
<!-- 数据库的密码 -->
<property name="password" value="${oracle.password}" />
<!-- 每60秒检查所有连接池中的空闲连接 -->
<property name="idleConnectionTestPeriodInMinutes" value="60"/>
<!-- 设置连接空闲时间(分钟) -->
<property name="idleMaxAgeInMinutes" value="240"/>
<!-- 设置连接池在每个分区中的最大连接数 -->
<property name="maxConnectionsPerPartition" value="30"/>
<!-- 设置连接池设在每个分区中的最小连接数 -->
<property name="minConnectionsPerPartition" value="10"/>
<!-- 设置分区(设置 3个分区) -->
<property name="partitionCount" value="3"/>
<!-- 当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数 -->
<property name="acquireIncrement" value="5"/>
<!-- 连接释放处理 -->
<property name="releaseHelperThreads" value="3"/>
<property name="statementReleaseHelperThreads" value="2" />
<property name="statementsCacheSize" value="100"/>
<!-每次获取连接前,检测连接是否有效->
<property name="initSQL" value="select * from dual"/>
<property name="connectionTestStatement" value="select * from dual"/>
</bean>
我用的是oracle数据库,其中 <property name="initSQL" value="select * from dual"/>配置很重要,不配置会出现sql异常。