是什么是数据库连接池?
数据库连接池就是一个容器,负责分配,管理数据库连接(Connerction)
它允许应用程序重复使用一个现有的数据库连接,而不是重新建立
释放空闲时间超过最大空闲时间的数据库连接来避免因为,没有释放数据库连接
而引起的数据库连接遗漏
好处:
资源重用
提升系统响应时间
避免数据库连接遗漏:—>
你比如说现在这个连接池里面有四个数据库连接池
那么现在已经有四个用户全部连接了,那么第五个人来了
就会在哪里等待,如果那个人一直在等待数据连接还没归还
那么这个用户就被遗漏了,这个时候连接池就会去检查怎么
还没有归还连接,他就回去看那个人在浪费资源,他就会强制
拿回连接
标准接口DataSource
官方(SUN)提供的数据库连接池标准接口,由第三组织实现此接口
功能获取连接
Connection getConnection():获取连接对象
常见的数据库连接池:
DBCP
C3P0
Druid
Druid(德鲁伊)
德鲁伊连接池是阿里巴巴开源的数据库连接池项目
功能强大 性能优秀
在系统启动之前初始化一个容器,就是一个集合,在集合里边提前申请许多数据库的连接
使用Druid连接池:
步骤:
- 导入jar包
- 定义配置文件
- 加载配置文件
- 获取数据库连接池对象
- 获取连接
datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=trueusername: rootpassword: 1234
Classname:驱动类名
URL:数据库的地址
driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql:///db1?useSSL=false&useServerPrepStmts=trueusername=rootpassword=1234# 初始化连接数量initialSize=5# 最大连接数maxActive=10# 最大等待时间maxWait=3000
加载配置;
/*** Druid数据库连接池演示*/public class DruidDemo {public static void main(String[] args) throws Exception {//1.导入jar包//2.定义配置文件//3. 加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));//4. 获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5. 获取数据库连接 ConnectionConnection connection = dataSource.getConnection();System.out.println(connection); //获取到了连接后就可以继续做其他操作了//System.out.println(System.getProperty("user.dir"));}}
DruidDataSourceFactory:连接池工厂对象获取连接对象
