首先先导入commons-dbcp-1.4.jar包 然后写一个配置文件dbcp.properties
dbcp.properties中给如下属性:
//地址是本机的地址 后面的jdbc是自定义的数据库名字
url=jdbc:mysql://localhost:3306/jdbc
//协议
driverClassName=com.mysql.jdbc.Driver
//自己本机的用户名
username=root
//自己的密码
password=111111
//初始化时的连接对象数
initialSize=3
//池子中最多能装连接对象的个数
maxActive=6
//最大的等待时间
maxIdle=3000
@Test
public void t2() throws Exception {
Properties prop = new Properties();
InputStream input = T.class.getResourceAsStream("dbcp.properties");
prop.load(input);
BasicDataSource bds = (BasicDataSource) BasicDataSourceFactory.createDataSource(prop);
//得到一个连接对象
Connection connection = bds.getConnection();
// bds.getConnection();
//PoolGuardConnectionWrapper类型
//也就是Connection接口的引用connection 指向了一个PoolGuardConnectionWrapper类的对象
System.out.println(connection.getClass().getName());
}
//这个是不用配置文件的写法
@Test
public void t1() throws SQLException {
//BasicDataSource类就是DBCP连接池的核心类 也就是这个库中的连接池类
//我们要用的连接对象,就是通过这个类获取的
//1, 创建一个对象
BasicDataSource bds = new BasicDataSource();
//2, 配置各种参数
bds.setUrl("jdbc:mysql://localhost:3306/jdbc");
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUsername("root");
bds.setPassword("111111");
//3, 配置池参数
//初始化时的连接对象数
bds.setInitialSize(3);
//最大等待时间
bds.setMaxWait(3000);
//池子中,最多有多少个空闲的连接对象
bds.setMaxIdle(6);
//池子中,最多能装多少个连接对象
bds.setMaxActive(8);
//这种情况就是想看一下现象 会出现异常
for (int i = 0; i < 9; i++) {
Connection conn = bds.getConnection();
}
}