DBCP和C3P0的简单使用

原理不说了,直接附上代码和注释来看一看常见的两种数据连接池怎么用吧。
DBCP
1.导入两个必需的jar包

commons-dbcp2-2.2.0.jar

commons-pool2-2.5.0.jar

2.编写数据连接池的Java代码(最简单的数据连接池的使用方法)
package com.dbc;

import org.apache.commons.dbcp2.BasicDataSource;

import java.sql.Connection;
import java.sql.SQLException;

public class DatabaseByDBCP {
    private static final BasicDataSource dataSource;
    static {
        dataSource = new BasicDataSource();//创建数据源对象
        dataSource.setDriverClassName( "com.mysql.jdbc.Driver" );//设置数据库连接的驱动
        dataSource.setUrl( "jdbc:mysql://localhost:3306/onlinezhihu?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false" );//设置连接的url
        dataSource.setUsername( "root" );//设置数据库的用户名
        dataSource.setPassword( "1" );//设置数据库的密码
        dataSource.setInitialSize( 5 );//设置连接池的初始化连接数
        dataSource.setMaxOpenPreparedStatements( 5 );
        dataSource.setMinIdle( 2 );
    }
    public  BasicDataSource getDataSource(){
        return dataSource;
    }
    public Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
}
3.使用数据连接池(直接在daoImpl下的java文件直接使用)
    private Connection conn = null;//数据库连接对象
    conn = new DatabaseByDBCP().getConnection();

  
C3P0
1.导入两个必需的jar包

c3p0-0.9.2.1.jar

mchange-commons-java-0.2.3.4.jar

2.编写数据连接池的Java代码(最简单的数据连接池的使用方法)
package com.dbc;

import com.mchange.v2.c3p0.ComboPooledDataSource;

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

public class DatabaseByC3P0 {
    private static ComboPooledDataSource dataSource ;
    static {
        dataSource = new ComboPooledDataSource(  );//创建连接池实例
        try {
            dataSource.setDriverClass( "com.mysql.jdbc.Driver" );//设置数据库连接的驱动
            dataSource.setJdbcUrl( "jdbc:mysql://localhost:3306/onlinezhihu?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false" );//设置连接的url
            dataSource.setUser( "root" );//设置数据库的用户名
            dataSource.setPassword( "1" );//设置数据库的密码
            dataSource.setMaxPoolSize( 40 );//设置连接池的最大连接数
            dataSource.setMinPoolSize( 2 );//设置连接池的最小连接数
            dataSource.setInitialPoolSize( 10 );//设置连接池的初始连接数
            dataSource.setMaxStatements( 180 );//设置连接池缓存的statement的最大数
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }

    }
    public ComboPooledDataSource getDataSource(){
        return dataSource;
    }
    public Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }


}
3.使用数据连接池(直接在daoImpl下的java文件直接使用)
    private Connection conn = null;//数据库连接对象
    conn = new DatabaseByC3P0().getConnection();

  
posted @ 2018-03-25 12:55  萌小莲子菇凉  阅读(409)  评论(0编辑  收藏  举报