C3P0连接技术

1.导入jar包(两个)

c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar
导入数据库驱动jar包

2.定义配置文件

配置文件名称:c3p0.properties 或者 c3p0-config.xml(叫这两个名称会自动寻找文件)
路径:默认在项目类路径(指的是在src下)

3.获取数据库连接池对象

创建核心对象 
数据库连接池对象ComboPooledDataSource 【DataSource 连接池、数据源】
ComboPooledDataSource什么都不传使用默认的(使用较多)
DataSource ds = new ComboPooledDataSource();
指定名称可以使用指定配置
DataSource ds = new ComboPooledDataSource("otherc3p0");

4.获取连接:getConnection


 获取连接对象

package cn.itcust.datasource.c3p0;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * c3p0的演示
 * */
public class C3P0Demo1 {
    public static void main(String[] args) throws SQLException {
        //1.导包
        //2.写配置文件
        //3.创建数据库连接池对象
        DataSource ds = new ComboPooledDataSource();
        //4.获取连接池对象
        Connection conn = ds.getConnection();
        //5.打印连接对象。字符串的形式展示获取到了。报错,null没获取到
        System.out.println(conn);
    }
}

输出的内容

JDBC4Connection类名
12bc6874哈希扣的值

package cn.itcust.datasource.c3p0;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * c3p0演示,连接参数
 */
public class C3P0Demo2 {
    public static void main(String[] args) throws SQLException {
        testNamedConfig();
    }

    public static void testNamedConfig() throws SQLException {//为了方便调用设置为静态的
        //获取DataSource,使用指定名称配置
        DataSource ds = new ComboPooledDataSource("otherc3p0");
        //2.获取连接
        for (int i = 1; i < 11; i++) {
            Connection conn = ds.getConnection();
            System.out.println(i + ":" + conn);
        }
    }
}

 配置文件

<c3p0-config>
    <!-- 使用 默认-配置 读取连接池对象 -->
    <default-config>
        <!--  连接参数 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <!--注册驱动-->

        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property>
        <!--数据库连接对象的 地址-->

        <property name="user">root</property>
        <!--数据库连接对象的 用户名称-->

        <property name="password">ROOT</property>
        <!--数据库连接对象的 用户密码-->


        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <!--初始化申请连接的数量-->

        <property name="maxPoolSize">10</property>
        <!--最大的连接数量-->
        <!--同时进来的10个人会把连接对象用完,精确到毫秒,这个根据数据库的最大连接数量和电脑的性能设置-->

        <property name="checkoutTimeout">3000</property>
        <!--申请不到对象等待3秒 报超时时间-->
    </default-config>


    <!--c3p0配置文件很人性化,可以通过一个配置文件操作不同数据库

    -->
    <named-config name="otherc3p0">
        <!--  连接参数 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/girls</property>
        <property name="user">root</property>
        <property name="password">ROOT</property>

        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">8</property>
        <property name="checkoutTimeout">1000</property>
    </named-config>
</c3p0-config>
原文地址:https://www.cnblogs.com/rijiyuelei/p/12376881.html