<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      springboot+mybatis 配置雙數據源(mysql,oracle,sqlserver,db2)

      以上如圖為項目文件夾目錄。

      1,首先配置application.yml 配置文件

      server:
        port: 8084
        tomcat:
          uri-encoding: utf-8
        servlet:
          context-path: /services
      
      #spring:
      #  datasource:
      #    type: com.alibaba.druid.pool.DruidDataSource
      #    #    name: skynet
      #    driver-class-name: com.mysql.jdbc.Driver
      #    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
      #    username: root
      #    password: root
      #
      #
      #  jpa:
      #    show-sql: true  #是否在控制臺打印sql語句
      
      # 自定義的mysql主數據源配置信息
      primary:
        datasource:
          #druid相關配置
          druid:
            #監控統計攔截的filters
            filters: stat
            driverClassName: com.mysql.jdbc.Driver
            #配置基本屬性
            url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
            username: root
            password: root
            #配置初始化大小/最小/最大
            initialSize: 1
            minIdle: 1
            maxActive: 20
            #獲取連接等待超時時間
            maxWait: 60000
            #間隔多久進行一次檢測,檢測需要關閉的空閑連接
            timeBetweenEvictionRunsMillis: 60000
            #一個連接在池中最小生存的時間
            minEvictableIdleTimeMillis: 300000
            validationQuery: SELECT 'x'
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            #打開PSCache,并指定每個連接上PSCache的大小。oracle設為true,mysql設為false。分庫分表較多推薦設置為false
            poolPreparedStatements: false
            maxPoolPreparedStatementPerConnectionSize: 20
      
      
      # 自定義的sqlserver數據源配置信息 或者oracle, db2 數據庫,只需要更改driverClassName以及數據庫基本屬性
      back:
        datasource:
          #druid相關配置
          druid:
            #監控統計攔截的filters
            filters: stat
            driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
            #配置基本屬性
            url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=tiuweb_drgs
            username: admin
            password: 123
            #配置初始化大小/最小/最大
            initialSize: 1
            minIdle: 1
            maxActive: 20
            #獲取連接等待超時時間
            maxWait: 60000
            #間隔多久進行一次檢測,檢測需要關閉的空閑連接
            timeBetweenEvictionRunsMillis: 60000
            #一個連接在池中最小生存的時間
            minEvictableIdleTimeMillis: 300000
            validationQuery: SELECT 'x'
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            #打開PSCache,并指定每個連接上PSCache的大小。oracle設為true,mysql設為false。分庫分表較多推薦設置為false
            poolPreparedStatements: true
            maxPoolPreparedStatementPerConnectionSize: 20
      
        jackson:
          time-zone: GMT+8
          date-format: yyyy-MM-dd HH:mm:ss
        resources:
          static-locations: classpath:/static/,classpath:/views/
      
      #mybatis
      mybatis:
        mapper-locations: classpath:mapper/**/*.xml
        configuration:
          map-underscore-to-camel-case: true
          default-fetch-size: 500
          default-statement-timeout: 80
      
      # mybatis 分頁插件 需要配置pom.xml坐標
      pagehelper:
        helperDialect: sqlserver
        reasonable: true
        supportMethodsArguments: true
        pageSizeZero: true
        params: count=countSql
      
      #logback日志配置 需要配置pom.xml坐標以及在resources下配置config配置文件
      logging:
        config: classpath:config/logback-spring.xml
        level:
          com.tiuweb.skynet.dao: DEBUG
        file:
          path: DRGS_LOG  #日志保存文件夾

      2,配置config數據源配置文件 PrimaryDataBaseConfig 和 BackDataBaseConfig

      package com.tw.skynet.config;
      
      import com.alibaba.druid.pool.DruidDataSource;
      import lombok.Data;
      import org.apache.ibatis.session.SqlSessionFactory;
      import org.mybatis.spring.SqlSessionFactoryBean;
      import org.mybatis.spring.annotation.MapperScan;
      import org.springframework.beans.factory.annotation.Qualifier;
      import org.springframework.boot.context.properties.ConfigurationProperties;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.context.annotation.Primary;
      import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
      import org.springframework.jdbc.datasource.DataSourceTransactionManager;
      import org.springframework.stereotype.Component;
      
      import javax.sql.DataSource;
      import java.sql.SQLException;
      
      
      @Data
      @Configuration
      @Component
      // 前綴為primary.datasource.druid的配置信息
      @ConfigurationProperties(prefix = "primary.datasource.druid")
      @MapperScan(basePackages = PrimaryDataBaseConfig.PACKAGE, sqlSessionFactoryRef = "primarySqlSessionFactory")
      public class PrimaryDataBaseConfig {
      
          /**
           * dao層的包路徑
           */
          static final String PACKAGE = "com.tw.skynet.dao";
      
          /**
           * mapper文件的相對路徑
           */
          private static final String MAPPER_LOCATION = "classpath:mapper/primary/*.xml";
      
          private String filters;
          private String url;
          private String username;
          private String password;
          private String driverClassName;
          private int initialSize;
          private int minIdle;
          private int maxActive;
          private long maxWait;
          private long timeBetweenEvictionRunsMillis;
          private long minEvictableIdleTimeMillis;
          private String validationQuery;
          private boolean testWhileIdle;
          private boolean testOnBorrow;
          private boolean testOnReturn;
          private boolean poolPreparedStatements;
          private int maxPoolPreparedStatementPerConnectionSize;
      
          // 主數據源使用@Primary注解進行標識
          @Primary
          @Bean(name = "primaryDataSource")
          public DataSource primaryDataSource() throws SQLException {
              DruidDataSource druid = new DruidDataSource();
              // 監控統計攔截的filters
              druid.setFilters(filters);
      
              // 配置基本屬性
              druid.setDriverClassName(driverClassName);
              druid.setUsername(username);
              druid.setPassword(password);
              druid.setUrl(url);
      
              //初始化時建立物理連接的個數
              druid.setInitialSize(initialSize);
              //最大連接池數量
              druid.setMaxActive(maxActive);
              //最小連接池數量
              druid.setMinIdle(minIdle);
              //獲取連接時最大等待時間,單位毫秒。
              druid.setMaxWait(maxWait);
              //間隔多久進行一次檢測,檢測需要關閉的空閑連接
              druid.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
              //一個連接在池中最小生存的時間
              druid.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
              //用來檢測連接是否有效的sql
              druid.setValidationQuery(validationQuery);
              //建議配置為true,不影響性能,并且保證安全性。
              druid.setTestWhileIdle(testWhileIdle);
              //申請連接時執行validationQuery檢測連接是否有效
              druid.setTestOnBorrow(testOnBorrow);
              druid.setTestOnReturn(testOnReturn);
              //是否緩存preparedStatement,也就是PSCache,oracle設為true,mysql設為false。分庫分表較多推薦設置為false
              druid.setPoolPreparedStatements(poolPreparedStatements);
              // 打開PSCache時,指定每個連接上PSCache的大小
              druid.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
      
              return druid;
          }
      
          // 創建該數據源的事務管理
          @Primary
          @Bean(name = "primaryTransactionManager")
          public DataSourceTransactionManager primaryTransactionManager() throws SQLException {
              return new DataSourceTransactionManager(primaryDataSource());
          }
      
          // 創建Mybatis的連接會話工廠實例
          @Primary
          @Bean(name = "primarySqlSessionFactory")
          public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource primaryDataSource) throws Exception {
              final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
              sessionFactory.setDataSource(primaryDataSource);  // 設置數據源bean
              sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                      .getResources(PrimaryDataBaseConfig.MAPPER_LOCATION));  // 設置mapper文件路徑
      
              return sessionFactory.getObject();
          }
      }
      package com.tw.skynet.config;
      
      
      import com.alibaba.druid.pool.DruidDataSource;
      import lombok.Data;
      import org.apache.ibatis.session.SqlSessionFactory;
      import org.mybatis.spring.SqlSessionFactoryBean;
      import org.mybatis.spring.annotation.MapperScan;
      import org.springframework.beans.factory.annotation.Qualifier;
      import org.springframework.boot.context.properties.ConfigurationProperties;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
      import org.springframework.jdbc.datasource.DataSourceTransactionManager;
      import org.springframework.stereotype.Component;
      
      import javax.sql.DataSource;
      import java.sql.SQLException;
      
      /**
       * @Description: 后臺數據源配置類
       */
      
      @Data
      @Configuration
      @Component
      @ConfigurationProperties(prefix = "back.datasource.druid")
      @MapperScan(basePackages = BackDataBaseConfig.PACKAGE, sqlSessionFactoryRef = "backSqlSessionFactory")
      public class BackDataBaseConfig {
      
          /**
           * dao層的包路徑
           */
          static final String PACKAGE = "com.tw.skynet.dao.back";
      
          /**
           * mapper文件的相對路徑
           */
          private static final String MAPPER_LOCATION = "classpath:mapper/back/*.xml";
      
          private String filters;
          private String url;
          private String username;
          private String password;
          private String driverClassName;
          private int initialSize;
          private int minIdle;
          private int maxActive;
          private long maxWait;
          private long timeBetweenEvictionRunsMillis;
          private long minEvictableIdleTimeMillis;
          private String validationQuery;
          private boolean testWhileIdle;
          private boolean testOnBorrow;
          private boolean testOnReturn;
          private boolean poolPreparedStatements;
          private int maxPoolPreparedStatementPerConnectionSize;
      
          @Bean(name = "backDataSource")
          public DataSource backDataSource() throws SQLException {
              DruidDataSource druid = new DruidDataSource();
              // 監控統計攔截的filters
              druid.setFilters(filters);
      
              // 配置基本屬性
              druid.setDriverClassName(driverClassName);
              druid.setUsername(username);
              druid.setPassword(password);
              druid.setUrl(url);
      
              //初始化時建立物理連接的個數
              druid.setInitialSize(initialSize);
              //最大連接池數量
              druid.setMaxActive(maxActive);
              //最小連接池數量
              druid.setMinIdle(minIdle);
              //獲取連接時最大等待時間,單位毫秒。
              druid.setMaxWait(maxWait);
              //間隔多久進行一次檢測,檢測需要關閉的空閑連接
              druid.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
              //一個連接在池中最小生存的時間
              druid.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
              //用來檢測連接是否有效的sql
              druid.setValidationQuery(validationQuery);
              //建議配置為true,不影響性能,并且保證安全性。
              druid.setTestWhileIdle(testWhileIdle);
              //申請連接時執行validationQuery檢測連接是否有效
              druid.setTestOnBorrow(testOnBorrow);
              druid.setTestOnReturn(testOnReturn);
              //是否緩存preparedStatement,也就是PSCache,oracle設為true,mysql設為false。分庫分表較多推薦設置為false
              druid.setPoolPreparedStatements(poolPreparedStatements);
              // 打開PSCache時,指定每個連接上PSCache的大小
              druid.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
      
              return druid;
          }
      
          @Bean(name = "backTransactionManager")
          public DataSourceTransactionManager backTransactionManager() throws SQLException {
              return new DataSourceTransactionManager(backDataSource());
          }
      
          @Bean(name = "backSqlSessionFactory")
          public SqlSessionFactory backSqlSessionFactory(@Qualifier("backDataSource") DataSource backDataSource) throws Exception {
              final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
              sessionFactory.setDataSource(backDataSource);
              sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                      .getResources(BackDataBaseConfig.MAPPER_LOCATION));
      
              return sessionFactory.getObject();
          }
      }

      3,以上配置就完成了,接下來就是dao文件夾和mapper文件夾分包

       

       

       

       現在所有配置已經完了,最后不要忘記pom.xml 導入所需要的數據庫驅動jar包

      posted @ 2021-12-15 14:37  _情書  閱讀(2059)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品在线二区三区| 精品视频在线观看免费观看| 久久天堂综合亚洲伊人HD妓女 | 欧美疯狂三p群体交乱视频| 躁躁躁日日躁| 五月天免费中文字幕av| 日韩中文字幕亚洲精品| 蜜桃视频在线免费观看一区二区| 免费观看又色又爽又黄的崩锅| 麻豆一区二区中文字幕| 国产欧美另类久久久精品不卡| 午夜免费无码福利视频麻豆| 国产精品久久久久免费观看| 色综合久久久久综合体桃花网 | 久久精品国产熟女亚洲av| 国产一级精品毛片基地| 国产一区二区三区av在线无码观看 | 少妇撒尿一区二区在线视频 | 亚洲熟妇国产熟妇肥婆| 蜜桃臀av在线一区二区| 日韩精品不卡一区二区三区| 西西人体www大胆高清| 午夜免费福利小电影| 农村肥熟女一区二区三区| 精精国产XXX在线观看| 国产精品成人无码久久久| 亚洲国产精品第一区二区| 中文字幕亚洲资源网久久| 99国产精品永久免费视频| 少妇又爽又刺激视频| 国产一区二区午夜福利久久| 成人午夜电影福利免费| 亚洲欧美日韩精品色xxx| 亚洲欧美另类久久久精品播放的| 亚洲国产精品久久综合网| 国产sm重味一区二区三区| 国内精品久久人妻无码不卡| 中文字幕色av一区二区三区| 国产精品久久久久婷婷五月| 精品人妻二区中文字幕| 国产成人午夜福利在线播放|