c3p0数据库连接池初识(版本:0.9.5.2)

在传统JDBC以及数据库框架开发中,程序与数据库交互是不可少的,如果在正式服务中,由于JDBC与数据库之间存在登录校验等关系,就在登录验证中需要消耗大量时间以及空间,这样程序的整体效率就会降低,因此需要使用数据库连接池存储数据库连接,这样程序调用数据库中的数据时可以直接去数据库连接池拿出Connection对象,可以节省大量的调用空间。
目前我所认识的数据库连接池有两大阵营,c3p0和alibaba的数据库连接池,本文章主要阐述c3p0数据库连接池进行数据库连接。
注意:0.9.5.2版数据库连接池必须引入两个官方jar包,如下
在这里插入图片描述
如果少引machange-commons-java就会报以下错误:
c3p0数据库连接池初识(版本:0.9.5.2)_第1张图片
一.程序的方式

package com.baidu.test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

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

public class Test {
    public static void main(String[] args) {
        try {
            ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
            comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
            comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mstest?useUnicode=true&characterEncoding=UTF-8");
            comboPooledDataSource.setUser("root");
            comboPooledDataSource.setPassword("root");
            comboPooledDataSource.setInitialPoolSize(20);//初始化数据库连接池容量
            comboPooledDataSource.setAcquireIncrement(5);//每次申请个数
            comboPooledDataSource.setMaxPoolSize(40);//申请数据库连接池最大容量
            comboPooledDataSource.setMinPoolSize(2);//申请数据库连接池最小容量(剩余量)
            Connection connection = comboPooledDataSource.getConnection();
            System.out.println(connection);
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        } catch (SQLException e){
            e.printStackTrace();
        }
    }
}

二.配置文件方式
xml

<c3p0-config>
    <named-config name="testc3p0">
        <property name="driverClass">com.mysql.jdbc.Driverproperty>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mstest?useUnicode=true&characterEncoding=UTF-8property>
        <property name="user">rootproperty>
        <property name="password">rootproperty>
        
        <property name="initialPoolSize">20property>
        
        <property name="acquireIncrement">2property>
        
        <property name="maxPoolSize">40property>
        
        <property name="minPoolSize">2property>
    named-config>
c3p0-config>

java

package com.baidu.test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Test2 {
    public static void main(String[] args) {
        ComboPooledDataSource dataSource = null;
        try {
            dataSource = new ComboPooledDataSource("testc3p0");
            System.out.println(dataSource.getConnection());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(java)