1、导包
2、配置文件:名称必须为:c3p0-config.xml,且必须放在src根目录下
<c3p0-config>
<!-- 默认配置,有且仅可出现一次 ,如果没有指定则使用这个配置 -->
<default-config>
<!-- 连接超时时间 30秒 -->
<property name="checkoutTimeout">30000</property>
<!-- 每30秒检查一次空闲时间 -->
<property name="idleConnectionTestPeriod">30</property>
<!-- 初始化池大小 -->
<property name="initialPoolSize">10</property>
<!-- 最多的connection的空闲时间 -->
<property name="maxIdleTime">30</property>
<!-- 池中最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- 池中最小连接数 -->
<property name="minPoolSize">10</property>
<!-- 批处理的语句 -->
<property name="maxStatements">50</property>
<!-- 每次增长几个连接 -->
<property name="acquireIncrement">3</property> <property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">
<![CDATA[jdbc:mysql:///jdbcdb?useUnicode=true&characterEncoding=UTF-8]]>
</property>
<property name="user">root</property>
<property name="password">mysql</property> </default-config>
<!-- 命名的配置 -->
<named-config name="MyDb">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">
<![CDATA[jdbc:mysql://localhost/bookstore]]>
</property>
<property name="user">root</property>
<property name="password">mysql</property>
<property name="acquireIncrement">5</property><!-- 如果池中数据连接不够时一次增长多少个 -->
<property name="initialPoolSize">100</property>
<property name="minPoolSize">50</property>
<property name="maxPoolSize">1000</property>
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">5</property> <!-- he's important, but there's only one of him -->
</named-config>
</c3p0-config> c3p0-config.xml
其中named-config不是必须的,是根据需要进行配置,可以配置oracle等数据库,在后面会说明,可能用到,也可能用不到。
3、获取DataSource工厂类
private static DataSource ds;
private DataSourceUtils(){}
static{
ds=new ComboPooledDataSource();//默认读取c3p0中默认配置
//new ComboPooledDataSource("MyDb");//读取c3p0配置在的named-config中的配置
} public static DataSource getDataSource()
{
return ds;
}
这里的ComboPooledDataSource("MyDb");就是读取named—config中的配置,而不是去读取默认的配置创建数据源