一.介绍:
数据库连接池实际上就是一个 " 容器 "
当有多个拥护需要访问数据库的时候, 一个用户会打开一个数据库连接, 但是!当用户离开的时候,就会断开数据库连接,那么数据库连接就作废了,之后如果还有用户需要进行访问,需要再建立一个数据库连接......循环往复, 那么数据库的执行效率就会十分的慢....
以此作为前提的情况下,我们就可以使用连接池!也就是一个连接池当中有多个的数据库连接, 当用户使用完了之后数据库连接并没有被清楚,而是又回到了连接池当中,以便下一个用户再使用数据库连接! 通过这一点,可以极大的提高效率,而减少了建立连接的时间
*提高了资源的重用 提升系统响应速度*
当然,连接池也会有一定的 "自我判断能力" 指的是, 如果一个用户 "睡着了" 也就是长时间占用连接而不归还, 连接池就会强制的拿回这个连接 及时的归还资源,强制的断开连接
*避免了连接遗漏*
由此可见,连接池的优点大概有三大部分
1.提高资源的重用
2.提升系统响应速度
3.避免了数据库的连接遗漏
二.数据库连接池的实现
1.官方接口
DataSoure
功能:获取连接
2.常见的数据库连接池:
DBCP
C3P0
Druid(德鲁伊)
在这里我们重点讲解第三种Druid,其功能十分强大,并且该市JAVA语言最好的数据库连接池之一!
三:"赛前"准备
Druid的使用主要分为五个步骤:
1.导入jar包 durid (拿1.1.12的版本作为一个例子)
1>首先下载相应的durid包
https://repo1.maven.org/maven2/com/alibaba/druid/1.1.12/druid-1.1.12.jar
这个是1.1.12版本的一个druid jar包
~~~~~下载的~~~~~比较慢
如果先前并没有导入过mysql的,最好两个都进行下载并导入,安装包请收下,也可以看之前有关JDBC的有关内容补课~~~~
https://cdn.mysql.com/archives/mysql-installer/mysql-installer-community-8.0.35.0.msi
MYSQL--JDBC*-CSDN博客https://blog.csdn.net/2303_79546217/article/details/136367691?spm=1001.2014.3001.5502
2>导入
打开IDEA新建文件夹Lib,将刚搞下载好的包复制,粘贴进去即可,如下
之后点击Add.....,再设置模块有效即可,如图
2.配置文件!*:
1.新的IDEA跟之前的IDEA配置文件图像有所变化,但是大体位置依然是没有变的,在相应的src当中创建druid.properties文件,如图
之后向这个文件当中输入以下的数据
driverClassName = com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/填写需要进行操作的数据库的名称
#输入你的MYSQL账户
username=root
#输入你的MYSQL密码
password=*****
#初始化连接个数
initialSize = 5
#最大的连接个数
maxActive = 10
#设置连接池的最大响应时间
maxWait = 3000
3.加载配置文件
4.后去连接池对象
5.获取数据库连接Connection
详细如下:
package druid;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;
public class druiddemo1 {
public static void main(String[] args) throws Exception {
//1.导入JRE包
//2.定义配置文件
//3.加载配置文件
Properties prop =new Properties();
// 在这里输入相应的已经配置好的druid文件所在地点
//但是有的时候前面需要加入模块包名称,有时候又不用,所以我们需要提前先进行一些判断,从而方便之后寻找
//System.out.println(System.getProperty("user.dir"));
// 输入之后会显示出一个地址,按照地址查找.在地址后面拼接上我们需要进行输入的地址,能够找到配置文件的!
// 就是我们所需要进行输入的地址!
prop.load(new FileInputStream("src/druid.properties"));
//4.获取连接池查询对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
//5.获取数据库连接connection
Connection connection = dataSource.getConnection();
System.out.println(connection);
}
}
感谢观看!OVER