1. 程式人生 > >SpringBoot - 配置Druid允許批量執行SQL

SpringBoot - 配置Druid允許批量執行SQL

Druid預設是不開啟批量SQL執行的,屬性為MultiStatementAllow.配置為true即可.

yml檔案配置:

filters:stat 

spring:
  profiles:
    active: dev
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    #下面為連線池的補充設定,應用到上面所有資料來源中# 初始化大小,最小,最大
    initialSize: 15
    minIdle: 5
    maxActive: 25
    #配置獲取連線等待超時的時間
    maxWait: 6000
    #配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    #配置一個連線在池中最小生存的時間,單位是毫秒
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    #開啟PSCache,並且指定每個連線上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    #配置監控統計攔截的filters,去掉後監控介面sql無法統計,'wall'用於防火牆
    filters: stat
    #通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    #合併多個DruidDataSource的監控資料
    #useGlobalDataSourceStat: true

配置類:

資料庫資料來源配置類中配置上即可。

/**
     * 配置允許批量SQL
     * @return
     */
    @Bean
    public WallFilter wallFilter() {

        WallFilter wallFilter = new WallFilter();
        wallFilter.setConfig(wallConfig());
        return wallFilter;
    }

    @Bean
    public WallConfig wallConfig() {
        WallConfig config = new WallConfig();
        config.setMultiStatementAllow(true);
        config.setNoneBaseStatementAllow(true);
        return config;
    }