一、引入jar包 c3p0.jar
二、需要自己写个类继承UnpooledDataSourceFactory,然后指定dataSource 为ComboPooledDataSource。
这个ComboPooledDataSource就是c3p0的数据源
package org.mybatis.c3p0;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0DataSourceFactory extends UnpooledDataSourceFactory{
public C3P0DataSourceFactory(){
this.dataSource =new ComboPooledDataSource();
}
}
三、配置 mybatis-config.xml
<dataSource type="org.mybatis.c3p0.C3P0DataSourceFactory">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/how2java?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false"/>
<property name="user" value="root" />
<property name="password" value="admin" />
<!-- 连接池初始化大小为3 -->
<property name="initialPoolSize" value="3"/>
<!-- 连接池最大为10 -->
<property name="maxPoolSize" value="10"/>
<!-- 连接池最小为3 -->
<property name="minPoolSize" value="3"/>
<!-- 连接池在无空闲连接可用时一次性最多创建的新数据库连接数 -->
<property name="acquireIncrement" value="5"/>
<!-- 连接的最大空闲时间,如果超过这个时间(秒),某个数据库连接还没有被使用,则会断开掉这个连接。如果为0,则永远不会断开连接,即回收此连接 -->
<property name="maxIdleTime" value="30"/>
<!-- 最大的Statement数量 -->
<property name="maxStatements" value="500"/>
<!-- 每个连接启动的最大Statement数量 -->
<property name="maxStatementsPerConnection" value="50"/>
<!-- 同时运行的线程数 -->
<property name="numHelperThreads" value="5"/>
</dataSource>