低调大师

您现在的位置是: 首页 > SpringBoot2配置Druid数据库连接池

文章详情

SpringBoot2配置Druid数据库连接池

低调大师 2019-7-22 15:59 109已围观 收藏 加入我们
SpringBoot2配置Druid数据库连接池

该文章为SpringBoot系列的一篇,若需完整请移步 SpringBoot_v2.x + JDK12 +Maven3.6.1入门全家桶 查看完整教程

注:该篇文章基于SpringBoot_v2.x整合MyBatis请先查阅该篇文章。 

1.修改pom.xml文件

<!-- SpringBoot-MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>

替换为

<!-- SpringBoot-Druid(数据库连接池) -->

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.18</version>
</dependency>
<!-- SpringBoot-MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
<exclusions>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</exclusion>
</exclusions>
</dependency>


2.修改application.properties配置文件

# 数据库配置
# spring.datasource.name : 数据源名称
# spring.datasource.driverClassName : 数据库驱动
# spring.datasource.url : 数据库连接地址
# spring.datasource.username : 数据库用户名
# spring.datasource.password : 数据库密码
# spring.datasource.type : 数据库类型
# spring.datasource.hikari.pool-name : 数据库连接池名称
# spring.datasource.hikari.minimum-idle : 最小连接数
# spring.datasource.hikari.maximum-pool-size : 最大连接数
# spring.datasource.hikari.auto-commit : 是否自动提交
# spring.datasource.hikari.idle-timeout : 连接闲置超时时间
# spring.datasource.hikari.max-lifetime : 连接在连接池中的存活时间
# spring.datasource.hikari.connection-timeout : 连接数据库超时时间
# spring.datasource.hikari.connection-test-query : 连接测试语句
spring.datasource.name=mysqlDataSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/Demo.SpringBoot?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.pool-name=hikariPool
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1

替换为

# 数据库配置
# spring.datasource.name : 数据源名称
# spring.datasource.driverClassName : 数据库驱动
# spring.datasource.url : 数据库连接地址
# spring.datasource.username : 数据库用户名
# spring.datasource.password : 数据库密码
# spring.datasource.type : 数据库类型
# spring.datasource.druid.initial-size : 初始化时建立物理连接的个数.初始化发生在显示调用init方法,或者第一次getConnection时
# spring.datasource.druid.min-idle : 最小连接池数量
# spring.datasource.druid.max-active : 最大连接池数量
# spring.datasource.druid.max-wait : 获取连接时最大等待时间,单位毫秒.配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁
# spring.datasource.druid.time-between-eviction-runs-millis : 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
# spring.datasource.druid.min-evictable-idle-time-millis : 配置一个连接在池中最小生存的时间,单位是毫秒
# spring.datasource.druid.validation-query : 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'.如果validationQuery为null,testOnBorrow,testOnReturn,testWhileIdle都不会起作用
# spring.datasource.druid.test-on-borrow : 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
# spring.datasource.druid.test-on-return : 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
# spring.datasource.druid.test-while-idle : 建议配置为true,不影响性能,并且保证安全性.申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效
# spring.datasource.druid.pool-prepared-statements : 是否缓存preparedStatement,也就是PSCache.PSCache对支持游标的数据库性能提升巨大,比如说oracle.在mysql下建议关闭
# spring.datasource.druid.max-pool-prepared-statement-per-connection-size : 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true.在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
spring.datasource.name=mysqlDataSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/Demo.SpringBoot?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=2
spring.datasource.druid.min-idle=2
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 'x'
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.pool-prepared-statements=false
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20


3.运行项目并访问[http://127.0.0.1:8080/hello]结果如下图所示

 

收藏 (0)

如果您喜欢本网站,或者本文章对您有些许帮助,那么可以打赏。

打赏多少您说了算,谢谢您对低调大师的支持!!!

支付宝扫一扫

个人博客,个人博客网站,低调大师,许军

微信扫一扫

个人博客,个人博客网站,低调大师,许军

文章评论

共有0条评论来说两句吧...