Druid 阿里开源的数据库连接池

选择的理由:

  • Druid 经历了阿里双十一的场景,足以可见其性能。
  • Druid 有完整的监控,可以实时监控数据库状态及sql的执行时间。
  • 提供有丰富的监控器,自定义监控器也很方便。

springboot 默认的连接池是HikariCP,使用Druid :

  • 引入jar 包。
        <!--数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency>
  • 在application.properties 里配置相关属性:

    #连接池配置
    #<!-- 配置初始化大小、最小、最大 -->
    spring.datasource.druid.initial-size=5
    spring.datasource.druid.min-idle=10
    spring.datasource.druid.max-active=20#<!-- 配置获取连接等待超时的时间 60秒-->
    spring.datasource.druid.max-wait=60000
    #<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    spring.datasource.druid.time-between-eviction-runs-millis=60000
    #<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    spring.datasource.druid.min-evictable-idle-time-millis=60000
    #spring.datasource.druid.max-evictable-idle-time-millis=90000#是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
    spring.datasource.druid.max-open-prepared-statements= -1
    #检测连接是否有效的语句,及超时时间
    spring.datasource.druid.validation-query=SELECT 1
    spring.datasource.druid.validation-query-timeout=30
    #申请连接是否检测,归还连接是否检测 ,空闲是否检测
    spring.datasource.druid.test-on-borrow=false
    spring.datasource.druid.test-on-return=false
    spring.datasource.druid.test-while-idle=true#druid 日志输出
    spring.datasource.druid.filter.slf4j.enabled=true
    spring.datasource.druid.filter.slf4j.statement-create-after-log-enabled=false
    spring.datasource.druid.filter.slf4j.statement-close-after-log-enabled=false
    spring.datasource.druid.filter.slf4j.result-set-open-after-log-enabled=false
    spring.datasource.druid.filter.slf4j.result-set-close-after-log-enabled=false#插件配置 监控统计用的filter:stat
    #日志用的filter:log4j
    #防御sql注入的filter:wall
    spring.datasource.druid.filters=stat,wall# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
    #sql 合并,慢sql展示监控 超过20秒为慢sql
    spring.datasource.druid.filter.stat.merge-sql=true
    spring.datasource.druid.filter.stat.log-slow-sql=true
    spring.datasource.druid.filter.stat.slow-sql-millis=20000spring.datasource.druid.web-stat-filter.enabled= true
    spring.datasource.druid.web-stat-filter.url-pattern=/*
    spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
    spring.datasource.druid.web-stat-filter.session-stat-enable=true
    spring.datasource.druid.web-stat-filter.session-stat-max-count=10
    #spring.datasource.druid.web-stat-filter.principal-session-name=admin
    #spring.datasource.druid.web-stat-filter.principal-cookie-name=admin
    #spring.datasource.druid.web-stat-filter.profile-enable=true# StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
    spring.datasource.druid.stat-view-servlet.enabled= true
    spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
    spring.datasource.druid.stat-view-servlet.reset-enable=false
    spring.datasource.druid.stat-view-servlet.login-username=admin
    spring.datasource.druid.stat-view-servlet.login-password=admin
    #Ip白名单 黑名单 黑名单优先,黑名单中存在就不可访问。
    #spring.datasource.druid.stat-view-servlet.allow=
    #spring.datasource.druid.stat-view-servlet.deny=# AOP 监控拦截切入点
    spring.datasource.druid.aop-patterns=com.example.demo.mapper.*,com.example.demo.service.*,com.example.demo.web.*
    
  • 启动项目进行访问。可以看到执行 的sql的详细信息。

这里输出的数据库日志采用logback,详细配置如下:

<!-- druid 数据库连接池日志输出--><appender name="druidSqlRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender" ><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss}] %-5level %L %M - %msg%xEx%n</pattern></encoder><file>${ROOT_LOG_DIR}/druid-sql.log</file><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>TRACE</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${ROOT_LOGBAK_DIR}/%d{yyyy-MM-dd}/api-%d{yyyy-MM-dd}.%i.txt</fileNamePattern><!-- 单个日志文件最多 100MB, 100天的日志周期,最大不能超过1000GB --><maxFileSize>100MB</maxFileSize><maxHistory>100</maxHistory><maxHistory>100GB</maxHistory></rollingPolicy></appender>
<!--记录druid-sql的记录--><logger name="druid.sql.Statement" level="debug" additivity="false"><appender-ref ref="druidSqlRollingFile"/></logger>
  • 可以看到日志输出:

springboot 使用Druid数据库连接池相关推荐

  1. Druid数据库连接池监控的使用

    Druid数据库连接池 1. Druid是什么? Druid是Java语言中最好的数据库连接池,由阿里巴巴团队开发.Druid能够提供强大的监控和扩展功能.         github地址为http ...

  2. SpringBoot整合Druid连接池

    SpringBoot整合Druid连接池 前言 第一种整合方式 自定义的方式 引入Druid依赖 配置文件 配置类 实现监控功能 开启SQL防火墙 实现web应用 访问Druid页面需登录 第二种整合 ...

  3. Druid数据库连接池就这么简单

    前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...

  4. Druid数据库连接池就是这么简单

    前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...

  5. Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10

    问题描述: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10at com.alibab ...

  6. Druid数据库连接池使用参考

    一:添加相应依赖 druid-1.0.9.jar: mysql-connector-java-5.1.48-bin.jar 二:编写properties文件 放置位置在src中: driverClas ...

  7. log4j mysql 异步_spring boot:配置druid数据库连接池(开启sql防火墙/使用log4j2做异步日志/spring boot 2.3.2)...

    一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: http ...

  8. spring boot、mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问

    spring boot.mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问 1.原理实现介绍 本质来说使用连接池是为了节省创建.关闭数据库连接的资源消耗,从而提 ...

  9. 使用Druid数据库连接池整合MyBatis Plus时,出现Error attempting to get column 'startTime' from result set. 类似错误

    问题描述: 使用Druid数据库连接池整合MyBatis Plus3.2.0时,出现Error attempting to get column 'startTime' from result set ...

最新文章

  1. centeros php pgsql,centos php添加pgsql扩展
  2. 【Python】学习笔记总结4(Python模块)
  3. 记忆化搜索,FatMouse and Cheese
  4. 人脸识别进水_万维|人脸识别闸机怎么选?
  5. 深度剖析数据中台提供的数据服务
  6. 演示FilterConfig接口的getInitParameter(String name)方法
  7. Netty工作笔记0047---Http服务程序实例
  8. Atitit 常见的树形结构 红黑树  二叉树   B树 B+树  Trie树 attilax理解与总结
  9. 我对Backbone的认识
  10. 按照计算机系统结构分类存储器可分为,存储器分类,存储器的分级结构
  11. 说出我的故事,献给正在迷茫的你
  12. 太极图正确画法_八卦太极图的正确画法
  13. 使用单链表制作电子通讯录
  14. Android 自定义心形图片
  15. 安卓辅助功能获取控件id
  16. RSD处理高分5号高光谱(GF5 AHSI)数据(四)——从地物光谱搜索高光谱数据集
  17. 1.无线通信:传播和衰落
  18. linux工具之jq
  19. rust山洞造家坐标_魔兽世界怀旧服部落1-60任务流程攻略 任务怪坐标位置汇总
  20. [资源] Visual Studio 2015正式版离线iso及在线下载,附专业版和企业版可用key!

热门文章

  1. 物联卡一直显示待激活怎么办_物联卡开始要求活体认证,这种纯流量卡你以后还管乱使用吗?...
  2. C语言调用so动态库的两种方式
  3. OBS 虚拟演播系统 - 视频学习笔记
  4. 移动端特点(重点)~~~
  5. Java 将带有小数点的字符串转成Integer类型数值
  6. ESP32模数转换 ADC(光感检测)
  7. Pic16f1828 1829串口收发
  8. 帕拉迪Core4A-UTM堡垒机使用手册
  9. mac电脑安装python_-mac电脑怎么安装python
  10. 几个javascript框架对比(vue,react,Angular等),如何选择?