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();