DBCP数据库连接池实例(2种方法实现)

第一种实现方式:不利用配置文件 关键代码如下:

package tan.com;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
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 TestJDBC {
	/**
	 * 如何使用DBCP数据库连接呢?
	 * 1、加入2个jar包commons pool
	 * 2、创建数据库连接池实例
	 * 3、创建常用的属性
	 * 4、从数据源中获取数据库连接
	 * @throws Exception 
	 */
	
	@Test
	public void testDPCP() throws SQLException{
		BasicDataSource dataSource=null;
		//1.创建DBCP数据库源实例
		dataSource=new BasicDataSource();
		//2.为数据源实例指定必须的属性
	dataSource.setUsername("root");
	dataSource.setPassword("1234");
	dataSource.setUrl("jdbc:mysql://localhost:3306/tan");
	dataSource.setDriverClassName("com.mysql.jdbc.Driver");
		//3。指定数据源的一些可选的属性
	//1)指定数据库连接池中初始化连接数的个数
	dataSource.setInitialSize(5);
	//2)指定最大的连接数:同一时刻同时向数据库申请的连接数
	//最大空闲数,放洪峰过后,连接池中的连接过多,
	dataSource.setMaxActive(5);
	//3)指定最小连接数:数据库空闲状态下所需要保留的最小连接数
	//防止当洪峰到来时,再次申请连接引起的性能开销;
	dataSource.setMinIdle(2);
	//4)最长等待时间:等待数据库连接的最长时间,单位为毫秒,超出将抛出异常
	dataSource.setMaxWait(1000*5);
	
	//4.从数据源中获取数据库连接
	Connection connection=dataSource.getConnection();
	System.out.println(connection.getClass());
	
	}}
第二种方式使用配置文件:

/**
	 * 1. 加载 dbcp 的 properties 配置文件: 配置文件中的键需要来自 BasicDataSource的属性.
	 * 2. 调用 BasicDataSourceFactory 的 createDataSource 方法创建 DataSource
	 * 实例
	 * 3. 从 DataSource 实例中获取数据库连接. 
	 * @throws Exception 
	 */
	@Test
	public void testDBCPWithDataSourceFactory() throws Exception{
		Properties properties = new Properties();
		InputStream inStream = TestJDBC.class.getClassLoader().getResourceAsStream("dbcp.properties");
		properties.load(inStream);
		
		DataSource dataSource = 
			 BasicDataSourceFactory.createDataSource(properties);
		
		System.out.println( dataSource.getConnection()); 
		
	}
	
配置文件属性:dbcp.properties

username=root
password=1234
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///tan


initialSize=10
maxActive=50
minIdle=5
maxWait=5000

运行结果:

jdbc:mysql:///tan, UserName=root@localhost, MySQL Connector Java

DBCP数据库连接池实例(2种方法实现)_第1张图片

2014年5月14日 星期三笔记



你可能感兴趣的:(DBCP数据库连接池实例(2种方法实现))