随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万

需要的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(); // 归还连接
    }
复制代码

 

 

 

 

 

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

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

 

posted on   时间完全不够用啊  阅读(87)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示