8.连接池(DBCP)

连接池:

在程序端提前创建好若干连接,对连接进行管理,提升数据库的连接效率,当需要数据库连接时,到连接池中获取即可

连接池主要有:

  • DBCP连接池
  • C3P0连接池
  • JNDI连接池

无连接池:
在这里插入图片描述

有连接池:
在这里插入图片描述


DBCP连接池:

DataBase Connection Pool 简称DBCP,Apache公司下的技术

使用:
创建一个配置文件:存放数据库的相关信息
DBCP连接池,读取配置文件

读取连接池配置文件:
Test.class是获得当前对象所属的class对象
getClassLoader()是取得该Class对象的类装载器
getResourceAsStream(“database.properties”) 调用类加载器的方法加载 资源,返回的是字节流

使用Properties类是为了可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象,然后通过getProperty方法用指定的键在此属性列表中搜索属性


案例:
在这里插入图片描述

Test.java

package cn.qf.pool.test;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp2.BasicDataSourceFactory;



public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1、创建连接池
		//读取连接池配置文件
		InputStream is=Test.class.getClassLoader().getResourceAsStream("database.properties");
		//database.properties  属性文件
		//在Java中.properties  格式  key=value
		//可以通过Java类,读取key对应的value
		Properties props=new Properties();
		try {
			props.load(is);
			//DBCP根据读取到的配置文件创建连接池
			//dataSource就是连接池
			DataSource dataSource=BasicDataSourceFactory.createDataSource(props);
			//2、从连接池中获取一个链接
			Connection con=dataSource.getConnection();
			System.out.println("从连接池中获取连接成功");
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("从连接池获取连接失败");
		}
	}
}

database.properties

driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/day7
username = root
password = cuichen975541045
initalSize = 10
maxActive = 50
maxIdle=20
minIdle=5
maxWait = 60000
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值