1、新建c3p0-config.xml(可写多个配置,调用的时候在具体调用啦):
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///day11</property>
<property name="user">root</property>
<property name="password">root</property>
</default-config>
<named-config name="aaa">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///day10</property>
<property name="user">root</property>
<property name="password">root</property>
</named-config>
<named-config name="bbb">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///day13</property>
<property name="user">root</property>
<property name="password">root</property>
</named-config>
</c3p0-config></span>
2、新建C3P0Demo.java:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Demo {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
// ComboPooledDataSource source = new ComboPooledDataSource();//使用默认的(放在src目录下的配置文件)
ComboPooledDataSource source = new ComboPooledDataSource("aaa");//使用名字为aaa的(放在src目录下的配置文件);一行搞掂配置文件
// source.setDriverClass("com.mysql.jdbc.Driver");
// source.setJdbcUrl("jdbc:mysql:///day11");
// source.setUser("root");
// source.setPassword("root");
conn = source.getConnection();
ps = conn.prepareStatement("select * from user");
rs = ps.executeQuery();
while(rs.next()){
String name = rs.getString("name");
System.out.println(name);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
ps = null;
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
}
}
}
3、配置文件可写信息(参看文档:c3p0帮助文档):
1、acquireIncrement:当连接池中已经没有连接时,连接池自动获取连接时一次获取的连接个数。
2、initialPoolSize:连接池初始化时,获取连接的个数。
3、maxPoolSize:连接池可以保有的最大的连接的数量。
4、maxIdleTime:当连接空闲多久时释放连接。如果该时间值设置问为0,表示从不释放连接。
5、minPoolSize:连接池应该保有的最小的连接的数量。