3.5JDBC学习——数据库连接池工具C3P0数据源

JAVAWEB文章索引点这里
C3P0
C3P0是目前醉流行的开源数据库连接池之一,它实现了DataSource数据源接口,支持JDBC2和JDBC3的标准规范,易于拓展并且性能优越,著名的开源框架Hibernate和Spring使用的都是该数据源。ComboPooledDataSource是DataSource接口的实现类,它提供了数据源的对象相关的方法。需要导入jar包(如:c3p0-0.9.1.2.jar)
它可以通过类似于DBCP中设置参数的方法来配置数据库信息。

package com.dbhelp;

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

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DBUtils_C3P0 {
    public static ComboPooledDataSource cpds = new ComboPooledDataSource();
    public static void main(String[] args) {
        for(int i = 0; i < 10;i++) {
            System.out.println(getConnection());
        }
    }
    static { 
        try {
            //设置连接参数
            cpds.setDriverClass("com.mysql.jdbc.Driver");
            cpds.setJdbcUrl("jdbc:mysql://localhost:3306/javabeantest");
            cpds.setUser("root");
            cpds.setPassword("123456");
            //设置连接池参数
            cpds.setInitialPoolSize(5);//设置初始化连接数量
            cpds.setMaxPoolSize(10);//设置最大连接数量
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }

    }
    public static Connection getConnection() {
        Connection conn = null;
        try {
            //从连接池获取连接
            conn = cpds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}

也可以使用配置文件c3p0-config.xml

<c3p0-config>
    <!-- 默认配置 -->
  <default-config>
        <!-- 连接参数 -->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/javabeantest</property>
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">12</property>
        <property name="checkoutTimeout">5000</property>
        <property name="minPoolSize">3</property>
  </default-config>
</c3p0-config>

使用代码:

package com.dbhelp;

import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DBUtils_C3P0_2 {
    public static void main(String[] args) {
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        try {
            for(int i = 0; i < 10; i++) {
                System.out.println(cpds.getConnection());
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/smallhc/article/details/80772617