c3p0数据库连接池


1.下载地址:https://sourceforge.net/projects/c3p0/

2.使用

1)将下载后解压文件内的这两个文件丢进去(可以自行选择版本)

注:这里的mysql-connector的jar包记得要放上去

 2)代码:

①创建配置文件c3p0-config.xml(我放到src里头)


    <default-config>
        "driverClass">com.mysql.cj.jdbc.Driver
        "jdbcUrl">jdbc:mysql://localhost:3306/javadb
        "user">root
        "password">root

        "initialPoolSize">5
        "maxPoolSize">10
        "checkoutTimeout">3000

    default-config>

    
    "otherc3p0">
        "driverClass">com.mysql.cj.jdbc.Driver
        "jdbcUrl">jdbc:mysql://localhost:3306/javadb
        "user">root
        "password">root

        "initialPoolSize">5
        "maxPoolSize">8
        "checkoutTimeout">1000
    

②运行代码

package util;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class C3P0Demo {
    public static void main(String[] args) throws SQLException {
        //创建数据库连接池对象(没传参数,使用默认配置)
        //DataSource ds = new ComboPooledDataSource();
        //使用指定名称的链接
        DataSource ds = new ComboPooledDataSource("otherc3p0");
        //连接对象
        for(int i = 1; i <= 11; i ++){
            Connection conn = ds.getConnection();
            System.out.println(i + ":" + conn);
            if(i == 5){
                conn.close();
            }
        }

    }
}

结果:(这个是执行默认的链接产生的-最大线程池默认10,我执行了11次,等于5的时候释放不报错)

参阅:https://www.bilibili.com/video/BV1vk4y117fU?p=516