数据库连接池
什么是数据库连接池
-
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。
-
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
-
模拟数据库连接池
-
连接池类-------
FastConnectionPool
-
模拟数据库连接池的操作流程:
- 创建一个数据库连接池
- 初始10个连接对象
- 来一个客户端,从连接池里取
- 当客户用完了,则不是真的销毁,而是放入到连接池中
public class FastConnectionPool {
private static LinkedList<Connection> pool = new LinkedList<>();
static{
for (int i = 0; i < 10; i++) {
Connection connection = DBUtils.getConnection();
pool.add(connection);
}
}
public Connection getConnection(){
return pool.removeFirst();
}
public void release(Connection cennection){
pool.add(cennection);
}
}
DataSoure
- 连接池各有各的实现方式,所以sun公司定义了一个标准:
DataSource
- 所以我们实现的连接要符合sun公司的规范,就需要实现接口
DataSource
,所以我们可以编写一个MyDataSource
类,之后就是面向DataSource
来编程。
DBCP
使用较少
文章使用jar包:commons-dbcp-1.4.jar
需配合POOL包使用:commons-pool-1.5.6.jar
配置文件:dbcp.properties
#连接设置
driverClassName=c