其他分享
首页 > 其他分享> > jdbc C3P0连接池

jdbc C3P0连接池

作者:互联网

需要的jar包:

 

 

 

package demo;

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

import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3p0 {
    @Test
    public void fun1() throws Exception {
        // 创建连接池对象
        ComboPooledDataSource ds = new ComboPooledDataSource();
        // 四大参数
        ds.setDriverClass("com.mysql.jdbc.Driver");
        ds.setJdbcUrl("jdbc:mysql://localhost:3306/db1");
        ds.setUser("root");
        ds.setPassword("747699");
        
        // 池配置
        ds.setAcquireIncrement(5);    // 自增数
        ds.setInitialPoolSize(20);    // 初始容量
        ds.setMinPoolSize(2); // 最小连接数
        ds.setMaxPoolSize(50);    // 最大连接
        
        Connection conn = ds.getConnection();    // 获取连接
        System.out.println(conn);
        conn.close();    // 归还连接
    }
}

 

 

 

配置文件

配置文件必须命名为c3p0-config.xml并且放在src目录下

 

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>  
        <!-- 默认配置 -->  
      <default-config>      
      <!-- 连接四大参数配置 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>    
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/db1</property>    
        <property name="user">root</property>    
        <property name="password">123456</property>    
        <!-- 池配置 -->
        <property name="initialPoolSize">10</property>    
        <property name="maxIdleTime">30</property>    
        <property name="maxPoolSize">100</property>    
        <property name="minPoolSize">10</property>    
      </default-config>    
    <!-- 命名配置,在创建c3p0对象的时候在构造器中传入name,例如下面的myApp -->
      <named-config name="myApp">    
        <property name="user">root</property>    
        <property name="password">123456</property>    
        <property name="driverClass">com.mysql.jdbc.Driver</property>    
        <property name="jdbcUrl">jdbc:mysql:///users</property>    
    
        <property name="initialPoolSize">10</property>    
        <property name="maxIdleTime">30</property>    
        <property name="maxPoolSize">100</property>    
        <property name="minPoolSize">10</property>    
      </named-config>    
</c3p0-config>

 

 

 

代码测试:

 

// 使用配置文件创建池
    @Test
    public void fun2() throws Exception {
        // 创建池
        ComboPooledDataSource ds = new ComboPooledDataSource();
        // 命名创建池
        
        // 获取连接
        Connection conn = ds.getConnection();
        System.out.println(conn);
        conn.close(); // 归还连接
    }

 

 

 

 

 

如果在使用配置文件创建池的时候,后面又自定义了配置,那么后面的自定义的配置会覆盖配置文件的配置。

因为在创建的时候就是读取配置文件中的配置,后面自定义的将会覆盖读取的配置。

 

标签:jdbc,配置文件,C3P0,conn,mysql,ds,连接池,ComboPooledDataSource
来源: https://www.cnblogs.com/0099-ymsml/p/16245319.html