• java--整合druid


    环境

      1、spring boot 2.x以上

      2、jdk1.8

    准备工作

      1、druid-spring-boot-starter

        简介:

          spring boot推出了一个druid的整合库,相比于原生的druid库来说,更加方便简洁

        maven:

         <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.2.6</version>
            </dependency>

      2、mysql-connector-java

        简介:

         mysql数据库连接驱动库。druid可以连接多个数据库,但是,并没有臃肿的去集成所有所有数据库的连接驱动依赖库,所以仍需要我们手动引入对应数据库的依赖库

        maven:

        <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.26</version>
            </dependency>

     配置文件

      在配置文件添加datasource配置。请注意 application.yml或application.properties都是spring boot的配置文件,要么使用yml要么使用properties,不要为难spring也不要为难自己

      application.properties

    #datasource 配置
    spring.datasource.druid.db-type=com.alibaba.druid.pool.DruidDataSource
    #mysql-connector-java6.0及以上使用com.mysql.cj.jdbc.Driver;5.0使用com.mysql.jdbc.Driver。这也对应这mysql的版本
    spring.datasource.druid.driverClassName=com.mysql.cj.jdbc.Driver
    #连接地址
    spring.datasource.druid.url=jdbc:mysql://localhost:3306/你的数据库名称?serverTimezone=UTC&allowMultiQueries=true&autoReconnect=true&characterEncoding=utf-8
    #数据库连接账户
    spring.datasource.druid.username=root
    #连接密码
    spring.datasource.druid.password=root
    # 下面为连接池的补充设置,应用到上面所有数据源中
    # 初始化大小,最小,最大
    spring.datasource.druid.initial-size=5
    spring.datasource.druid.min-idle=5
    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 1 FROM DUAL
    spring.datasource.druid.test-while-idle=true
    spring.datasource.druid.test-on-borrow=false
    spring.datasource.druid.test-on-return=false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    spring.datasource.druid.pool-prepared-statements=true
    spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    spring.datasource.druid.filter.commons-log.connection-logger-name=stat,wall,log4j
    spring.datasource.druid.filter.stat.log-slow-sql=true
    spring.datasource.druid.filter.stat.slow-sql-millis=2000
    # 合并多个DruidDataSource的监控数据
    spring.datasource.druid.use-global-data-source-stat=true
    View Code

      application.yml

    spring:
      datasource:
        druid:
          db-type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/mall?serverTimezone=UTC&        allowMultiQueries=true&autoReconnect=true&characterEncoding=utf-8
          username: root
          password: root
          initial-size: 5
          min-idle: 5
          max-active: 20
          max-wait: 60000
          time-between-eviction-runs-millis: 60000
          keep-alive-between-time-millis: 30000
          validation-query: SELECT 1 FROM DUAL
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          pool-prepared-statements: true
          max-pool-prepared-statement-per-connection-size: 20
          filter:
            commons-log:
              connection-logger-name: stat,wall.log4j
            stat:
              log-slow-sql: true
              slow-sql-millis: 2000
          use-global-data-source-stat: true

    添加配置类

      在配置文件中添加响应的配置后,只是在spring boot容器内注入了一个DataSource对象的Bean,只能通过@Autowired去获取,而Autowird有一些使用限制,这个可以自己去百度,所以我一般这样使用

    @Configuration
    public class DruidConf {
    
        public static DataSource ds;
    
        @Bean
        public DataSource dataSource() {
            if (ds == null) {
                ds = DruidDataSourceBuilder.create().build();
            }
            return ds;
        }
    }

    最后通过dataDataSource对象获取到connection(ds.getConnection),就可以愉快的使用了

      

      

      

  • 相关阅读:
    服务管理命令
    软件管理
    Qt软件打包与发布(windeployqt工具)
    03
    第一章 BP神经网络
    代理模式 与 Spring AOP
    java 回调机制
    HashTable 实现
    实现Singleton模式
    BST 汇总
  • 原文地址:https://www.cnblogs.com/wrhbk/p/15104287.html
Copyright © 2020-2023  润新知