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),就可以愉快的使用了

  

 

  

  

posted @ 2021-08-23 11:07  眼里有激光  阅读(696)  评论(0编辑  收藏  举报