c3p0数据库连接池使用

package cn.itcast.test;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 演示c3p0连接池
 * @author 国真
 *  1. 需要两个jar包:c3p0-0.9.2-pre1.jar 和 mchange-commons-0.2.jar
 *  2. fun1()使用代码来创建连接池对象
 *     fun2()使用默认配置,<default-config>
 *     fun3()使用命名配置,<name-config name="mysqlConfig">
 */
public class Demo {
    @Test
    public void fun1() throws PropertyVetoException, SQLException{
        //创建连接池对象
        ComboPooledDataSource ds = new ComboPooledDataSource();

        //连接参数配置(四大参数)
        ds.setDriverClass("com.mysql.jdbc.Driver");
        ds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
        ds.setUser("root");
        ds.setPassword("admin");

        //池配置省略

        //获取连接
        Connection connection = ds.getConnection();
        System.out.println(connection.getClass().getName());    //返回connection对象所代表的具体对象的名称
        connection.close();
    }

    @Test
    public void fun2() throws PropertyVetoException, SQLException{
        //创建连接池对象
        ComboPooledDataSource ds = new ComboPooledDataSource();

        Connection connection = ds.getConnection();
        System.out.println(connection.getClass().getName());    
        connection.close();

        //关闭池连接
        ds.close();
    }

    @Test
    public void fun3() throws PropertyVetoException, SQLException{
        //创建连接池对象
        ComboPooledDataSource ds = new ComboPooledDataSource("mysqlConfig");    //若给出了参数,则该参数就是<name-config>的名称

        Connection connection = ds.getConnection();
        System.out.println(connection.getClass().getName());    
        connection.close();

        //关闭池连接
        ds.close();
    }
}
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
    <default-config> 
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">admin</property>

        <property name="acquireIncrement">3</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>
    </default-config>

    <name-config name="mysqlConfig"> 
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">admin</property>

        <property name="acquireIncrement">3</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>
    </name-config>
</c3p0-config>