1 简介
1.1 概念
- 持有多个数据库连接的容器,当程序需要操作数据库的时候,直接可以从池中取出连接,使用完成之后,再放回到池中。
1.2 优点
- 节省资源。如果每次访问数据库,都需要创建新的连接,在使用完成后,再去销毁连接,都是比较耗费系统资源的
- 响应更高效。节省了创建和销毁的时间
- 统一管理数据库连接,避免因为业务膨胀,导致数据库连接增多
- 对性能各方面进行监控
1.3 开源连接池技术
- C3P0
- DBCP(DataBase Connection Pool)
- Druid(阿里开源)
- HiKariCP
2.连接池使用
2.1 Druid使用
下载地址:https://repo1.maven.org/maven2/com/alibaba/druid/1.2.9/
public class Test {
public static void main(String[] args) throws SQLException {
DruidDataSource datasource=new DruidDataSource();
datasource.setDriverClassName("com.mysq1.cj.jdbc.Driver");
datasource.setUrl("jdbc:mysq1://localhost:3306/test");
datasource.setUsername("root");
datasource.setPassword("123456");
datasource.setInitialSize(5);//连接池创建的时候,自动创建的数据库连接数量
datasource.setMinIdle(10);//最小空闲连接
datasource.setMaxActive(20);//最大同时激活的连接数量
datasource.setMaxWait(6000);//最大等待时间。以毫秒为单位.-1表示无限等待
Connection connection=datasource.getConnection();
}
}
2.2 HikariCP使用
下载地址:https://repo1.maven.org/maven2/com/zaxxer/HikariCP/5.0.1/
依赖下载地址:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.6/
public class Test {
public static void main(String[] args)throws SQLException {
HikariDataSource datasource=new HikariDataSource();
datasource.setDriverClassName("com.mysq1.cj.jdbc.Driver");
datasource.setJdbcUrl("jdbc:mysq1://1ocalhost:3306/test");
datasource.setUsername("root");
datasource.setPassword("123456");
datasource.setMinimumIdle(10);
Connection connection =datasource.getConnection();
}
}