数据库连接池--德鲁伊数据库连接池

介绍(为什么要有数据连接池?)

1). 没有数据库连接池的情况

数据库连接池--德鲁伊数据库连接池_第1张图片

客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要关闭连接对象从而释放资源,每次执行SQL时都需要创建连接、销毁链接,这种频繁的重复创建销毁的过程是比较耗费计算机的性能。

2). 有数据库连接池的情况

数据库连接池--德鲁伊数据库连接池_第2张图片

数据库连接池是个容器,负责分配、管理数据库连接(Connection)

  • 程序在启动时,会在数据库连接池(容器)中,创建一定数量的Connection对象

允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

  • 客户端在执行SQL时,先从连接池中获取一个Connection对象,然后在执行SQL语句,SQL语句执行完之后,释放Connection时就会把Connection对象归还给连接池(Connection对象可以复用)

释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏

  • 客户端获取到Connection对象了,但是Connection对象并没有去访问数据库(处于空闲),数据库连接池发现Connection对象的空闲时间 > 连接池中预设的最大空闲时间,此时数据库连接池就会自动释放掉这个连接对象

数据库连接池的好处:

  • 资源重用它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。

  • 提升系统响应速度

  • 避免数据库连接遗漏释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。


产品

常见的数据库连接池:C3P0 DBCP Druid Hikari (springboot默认)

现在使用更多的是:Hikari(追光者)、Druid (性能更优越)

主要介绍Druid连接池,因为最常用。

Druid(德鲁伊)

  • Druid连接池是阿里巴巴开源的数据库连接池项目

  • 功能强大,性能优秀,是Java语言最好的数据库连接池之一

如果我们想把默认的数据库连接池切换为Druid数据库连接池,只需要完成以下两步操作即可:

①. 在pom.xml文件中引入依赖


    
    com.alibaba
    druid-spring-boot-starter
    1.2.19

②. 在application.properties中引入数据库连接配置

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/web
spring.datasource.druid.username=root
spring.datasource.druid.password=1234

 小结:

1. 数据库连接池
是一个容器,负责分配、管理数据库连接 (Connection)
优势:资源复用、提升系统响应速度
接口: DataSource
产品: C3P0 DBCP Druid Hikari ( 默认 )

你可能感兴趣的:(springboot,mybatis,java,spring,boot,mybatis)