数据库连接池(DBCP:为数据统一建立一个缓冲池,现在企业开发使用)
数据库连接池:(里面放了许多连接数据的链接,负责分配,管理,释放数据库连接,可重复使用连接,而不新建 )为数据统一连接建立一个缓冲池,放好了一定数据库连接,使用时在缓冲池里面拿,用完之后再还给缓冲池,再使用时,不需要新建;
三个架包
mysql-connector-java-jar
commons-dbcp-1.4jar
commons-pool-1.5.5jar 导进去
---------------------------------------------------------------------------------------
基本方法:
/*
* DBCP数据源:需要使用架包dbcp.jar
*1.加入jar包,依赖于Commons Pool这个架包
*2.创建数据库连接池
*3.设置了常用的属性
*4.从数据源中获取数据库的连接
* */
//第一种方法:
public void testDBCP() throws SQLException{
BasicDataSource dataSource=null;
//1. 创建DBCP数据源实例
dataSource=new BasicDataSource();
//2.为数据源实例指定必须的属性
//driver=com.mysql.jdbc.Driver
//jdbcUrl=jdbc:mysql://localhost:3306/lxn
dataSource.setUsername("root");
dataSource.setPassword("lxn123");
dataSource.setUrl("jdbc:mysql://localhost:3306/lxn");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
System.out.println(dataSource.getUsername());
//指定数据源的一些可选的属性
dataSource.setInitialSize(10);//指定数据库连接池中初始化连接的个数
dataSource.setMaxActive(50);//指定最大的连接数:同一时刻可以向数据库同时申请的连接数
dataSource.setMinIdle(10);//指定最小连接数:在数据库连接池空闲状态下,在连接池中最少连接数
dataSource.setMaxWait(1000*5);//等待数据库连接池分配连接最长时间,单位为毫秒,超出时间,抛出异常
//3.从数据源中获取连接
Connection connection=dataSource.getConnection();
System.out.println(connection);
}
----------------------------------------------------------------------------------------
第二种方法获取连接:
在src目录下建立:dbcp文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/lxn
username=root
password=lxn123
initialSize=10
maxActive=50
minIdle=5
maxWait=5000
方法:
/*
* 1.加载dbcp.properties配置文件,配置文件中的建需要来自BasicDataSource的属性
* 2.调用BasicDataSourceFactory的createDataSource方法创建DataSource实例
* 3.从DataSource实例中获取数据库的连接
*
* */
public Connection testDBCPWithDataSourceFactlory() throws Exception{
Properties properties=new Properties();
InputStream in=
TestJDBC.class.getClassLoader().getResourceAsStream("dbcp.properties");
properties.load(in);
DataSource dataSource=BasicDataSourceFactory.createDataSource(properties);
Connection connection=dataSource.getConnection();
System.out.println(connection);
BasicDataSource basicDataSource=(BasicDataSource)dataSource;
System.out.println(basicDataSource.getMaxWait());
reture connection;
}
------------------------------------------------------------------------------
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;
import导的包,导错会出现异常