连接池:
在程序端提前创建好若干连接,对连接进行管理,提升数据库的连接效率,当需要数据库连接时,到连接池中获取即可
连接池主要有:
- 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
303

被折叠的 条评论
为什么被折叠?



