Fork me on GitHub

SpringBoot集成druid数据库连接池的简单使用

简介

Druid是阿里巴巴旗下Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。
官网: https://github.com/alibaba/druid/wiki/常见问题
SpringBoot集成官网:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

依赖

    <!--sqlserver驱动-->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version> 7.4.1.jre8</version>
            <scope>runtime</scope>
        </dependency>
        <!--Duid集成SpringBoot-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.18</version>
        </dependency>
        <!--spring集成jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>

yml配置

server:
  port: 8082
  servlet:
    context-path: /druidDemo
spring:
  datasource:
    url: jdbc:sqlserver://192.168.200.42\YPT3
    username: sa
    password: 123qwe,.
    # 可以缺省 根据添加的依赖进行自动配置
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    druid:
      initial-size: 5 # 初始化时建立物理连接的个数
      max-active: 30 # 最大连接池数量
      min-idle: 5 # 最小连接池数量
      max-wait: 60000 # 获取连接时最大等待时间,单位毫秒
      time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      min-evictable-idle-time-millis: 300000 # 连接保持空闲而不被驱逐的最小时间
      validation-query: SELECT 1 # 用来检测连接是否有效的sql,要求是一个查询语句
      # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
      test-while-idle: true
      test-on-borrow: false # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
      test-on-return: false  # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
      pool-prepared-statements: true # 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
      max-pool-prepared-statement-per-connection-size: 50 # 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
      filter:
        stat: # 配置监控统计拦截的filters,去掉后监控界面sql无法统计
          db-type: sqlserver #类型
          log-slow-sql: true #开启慢sql监控
          slow-sql-millis: 2000 #慢sql时间
          enabled: true
      connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
      use-global-data-source-stat: true # 合并多个DruidDataSource的监控数据
      stat-view-servlet:
        login-username: admin # druid连接池监控用户名
        login-password: 123 # druid连接池监控用户名密码
        enabled: true #是否启用StatViewServlet(监控页面)默认值为false(考虑到安全问题默认并未启动,如需启用建议设置密码或白名单以保障安全)
      web-stat-filter:
        exclusions: /druid/* # 排除一些静态资源,以提高效率 *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
    type: com.alibaba.druid.pool.DruidDataSource #连接池指定 springboot2.02版本默认使用HikariCP 此处要替换成Druid

监控页面

启动项目: 访问
http://localhost:8082/druidDemo/druid/sql.html

gitee项目地址

https://gitee.com/zhuayng/foundation-study.git

参考

https://www.cnblogs.com/defineconst/p/10879824.html
https://segmentfault.com/a/1190000019718506

posted @ 2021-08-04 22:59  晨度  阅读(630)  评论(0编辑  收藏  举报