DBCP连接池
原创
©著作权归作者所有:来自51CTO博客作者请叫我木丁西的原创作品,请联系作者获取转载授权,否则将追究法律责任
DBCP连接池
DBCP
是
Apache
软件基金组织下的开源连接池实现,使用
DBCP
数据源,应用程序应在系统中增加如下两个
jar
文件:
Commons-dbcp.jar
:连接池的实现
Commons-pool.jar
:连接池实现的依赖库
Tomcat
的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。
核心类:BasicDataSource
使用步骤
引入
jar
文件
commons-dbcp-1.4.jar点击打开链接commons-pool-1.5.6.jar点击打开链接
DBCP连接池的实现
package com.cn.dbcp;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;
public class DbcpTest {
/**
* 1. 硬编码方式实现连接池
* @throws Exception
*/
@Test
public void testDbcp() throws Exception {
//DBCP连接池核心类
BasicDataSource dataSource = new BasicDataSource();
//连接池参数配置,初始化连接数,最大连接数
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");//数据库连接url
dataSource.setDriverClassName("com.mysql.jdbc.Driver");//数据库驱动
dataSource.setUsername("root");//数据库连接用户
dataSource.setPassword("root");//数据库连接密码
dataSource.setInitialSize(3);//初始化连接数
dataSource.setMaxActive(6);//最大连接数
dataSource.setMaxIdle(3000);//最大空闲时间
//获取连接
Connection conn = dataSource.getConnection();
dataSource.getConnection();
dataSource.getConnection();
conn.prepareStatement("delete from users where id = 13").execute();
//关闭
conn.close();
}
/**
* 2. 配置方式实现连接池
* @throws Exception
*/
@Test
public void testDbcpProperties() throws Exception {
//加载Properties配置文件
Properties properties = new Properties();
//类加载方式获取配置文件流
InputStream in = this.getClass().getResourceAsStream("db.properties");
//加载文件流
properties.load(in);
DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
//获取连接
Connection conn = dataSource.getConnection();
conn.prepareStatement("delete from users where id = 11").execute();
//关闭
conn.close();
}
}
DBCP连接池的配置文件db.properties:
url=jdbc:mysql://localhost:3306/mydb
driverClassName=com.mysql.jdbc.Driver
username=root
password=root
initialSize=3
maxActive=6
maxIdle=3000
注意:
配置方式实现DBCP连接池。配置文件中的key与BaseDataSource中的属性一样。