数据库连接池的意义是什么?
对于数据库连接对象来说,每次创建连接都需要数据库服务端创建专门的资源来应对,如果对于数据库的请求量较少的话,数据库服务端还能撑得住,但是请求量很大时,数据库服务端将会频繁创建关闭数据库连接,频繁创建关闭连接不仅会花费较长的时间,而且还很容易导致数据库服务端停止服务。
所以,在实际的生产中,项目的数据库连接基本都使用连接池的方式。
数据库连接池的工作逻辑是什么?
在项目启动时,先创建数据库连接对象,创建好以后,将该连接对象放到对象池容器中,对象池容器通常是由集合来实现。
此时当程序要连接数据库的时候,就不再直接操作数据库服务端,而是从对象池中取出来一个空闲的数据库连接对象进行操作,操作完之后再将该连接对象交还给对象池容器,这样就不用频繁创建关闭数据库连接。
常用的数据库连接池有哪些?
目前,常用的数据库连接池有dbcp、druid、HikariCP等等。
其中,druid是由阿里巴巴计算平台事业部出品,它是为监控而生的数据库连接池。
今天,就教大家如何在springboot项目中使用druid连接池。
springboot中使用druid连接池
springboot版本:2.3.0;
druid版本:1.1.22;
1 创建springboot项目
如果不会创建springboot项目,请先去补相关知识
2 引入mybatis框架
在pom.xml文件中添加依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
注意:如果创建springboot项目时已经选择了mybatis,就不用添加上面的依赖
3 引入druid框架
在pom.xml文件中添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
4 新建application-dev.yml并在其中添加druid配置
spring:
datasource:
druid:
username: root
password: password
url: jdbc:mysql://localhost:3306/springboot?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
max-active: 20
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
注意:
1,username、password、url、driver-class-name请换成自己数据库的信息;
2,请保证resource文件夹下有appilcation.yml文件,如果没有请创建,并在其中添加如下配置
spring:
profiles:
active: dev
5 启动项目验证
可以看到,druid连接池已经成功的引入项目!
后记:
如果文章帮助到了你,就是我的最大快乐!
码字不易,有能力的小伙伴请给个赞赏!