DBCP连接池

package com.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 JDBC {
 /**
  *
  * 将连接数据库的属性放在配置文件中,通过如下方法获取数据库连接
  *1.加载dbcp的properties配置文件:配置文件中的键需要来自BasicDataSource的属性
  *2.调用BasicDataSourceFactory的createDataSource方法创建DataSource实例
  *3.从DataSource实例中获取数据库来连接
  * @throws Exception
  */
 @Test
 public void testDBCPWithDataSourceFactory() throws Exception{
  
  Properties properties = new Properties();
  
  InputStream inStream = JDBC.class.getClassLoader()
    .getResourceAsStream("dbcp.properties");
  properties.load(inStream);
  
  DataSource dataSource =
    BasicDataSourceFactory.createDataSource(properties);
  
  System.out.println(dataSource.getConnection());
  
  BasicDataSource basicDataSource =
    (BasicDataSource) dataSource;
  System.out.println(basicDataSource.getMaxActive());
    
 }
 
 
 /**
  * 使用DBCP数据库连接池
  * 1.加入jar包(2个)commons-dbcp和commons-pool jar 包 ;
  * 2.创建数据库连接池
  * 3.为数据源实例指定必须的属性
  * 4.从数据源中获取数据库连接
  * @throws Exception
  */
 @Test
 public void testDBCP() throws Exception {
  BasicDataSource dataSource = null;
  // 1.创建DBCP数据源实例
  dataSource = new BasicDataSource();

  // 2.为数据源实例提供必须的属性
  dataSource.setUsername("root");
  dataSource.setPassword("mysql");
  dataSource.setUrl("jdbc:mysql:///jdbc");
  dataSource.setDriverClassName("com.mysql.jdbc.Driver");

  // 3.指定数据源的一些可选的属性
  // 1).指定数据库连接池中初始化连接数的个数
  dataSource.setInitialSize(10);

  // 2).指定最大的连接数:同一时刻可以向数据库申请的连接数
  dataSource.setMaxActive(50);

  // 3).指定最小连接数:在数据库连接池空闲状态下的连接数
  dataSource.setMinIdle(5);
  
  //4).等待数据库连接池分配连接的最长时间。单位为 毫秒,超出时间将抛出异常。
  dataSource.setMaxWait(1000*5);

  // 4.从数据源中获取数据库里连接
  Connection connection = dataSource.getConnection();
  System.out.println(connection);
 }

}



配置文件:

dbcp.properties


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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值