数据库连接池
-
什么是数据连接池?
数据库连接池是一种容器,里面存放的数据库连接对象。 -
数据库连接池的好处
避免对数据库频繁请求、开启连接,这是消耗内存的。
提高用户对数据库的访问速度。
可以管理资源的开启、关闭,防止用户因为忘记释放连接,而造成的资源空闲。 -
流程
1) 用户向连接池请求连接。
2) 数据池查看池内是否有空闲连接,连接池会对那些空闲时间超过了最大空闲时间的连接对象予以回收。
3) 有则向用户返回此连接;没有则检查池内连接数是否达到池的容量,若没有则创建一个新的连接对象返回给用户,否则用户等待。
4) 用户获取到连接后就可以进行SQL操作了。
Driud
因为要使用数据库连接池必须实现DataSource这个接口:
但是我们已经不必自己实现了,如今市面上已经有很多关于数据库连接池的开源项目了。
现在我们就来使用市面上较好的数据库连接池项目Druid(德鲁伊),这是阿里巴巴研发的开源项目。
- Druid的jar包下载
https://repo1.maven.org/maven2/com/alibaba/druid/
- 在项目中导入Druid的jar包
- 编写配置文件
druid.propreties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/你的数据库名
username=root
password=123456
#初始化连接个数
initialSize=10
#最大连接数
maxActive=20
#最大等待时间
maxWait=1000
将配置文件放入项目的目录下(随便放,知道路径就行)
- 测试使用
/**
* 数据库连接池Druid的创建
*/
public class Test {
public static void main(String[] args) throws Exception {
//创建资源对象
Properties prop = new Properties();
//加载配置文件
prop.load(new FileInputStream("src/druid.properties"));
//获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(prop);
//获取数据库连接
Connection conn = ds.getConnection();
System.out.println(conn.isClosed()?"获取连接失败":"获取连接成功");
conn.close();
}
}
连接获取成功,数据库连接池使用成功!