美文网首页
springboot mybatis-plus多数据源

springboot mybatis-plus多数据源

作者: 一介书生独醉江湖 | 来源:发表于2022-06-21 20:01 被阅读0次
    # pom.xml
    
    <!--mybatis 依赖-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.2</version>
    </dependency>
    <!--mybatis 依赖-->
    
    <!--mybatis 多数据源依赖-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        <version>3.5.0</version>
    </dependency>
    <!--mybatis 多数据源依赖-->
    
    <!-- 引入阿里数据库连接池 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.6</version>
    </dependency>
    <!-- 引入阿里数据库连接池 -->
    
    # application.yml
    
    server:
      port: 8808
      servlet:
        context-path: /plug-api
      tomcat:
        uri-encoding: utf-8
    spring:
      application:
        name: plug-api
      profiles:
        # 运行环境
        active: dev
    
    
    # mybatis-plus相关配置
    mybatis-plus:
      # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
      mapper-locations: classpath*:/mapper/*/*.xml
      # 以下配置均有默认值,可以不设置
      global-config:
        db-config:
          #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
          id-type: auto
          #字段策略 IGNORED:"忽略判断"  NOT_NULL:"非 NULL 判断")  NOT_EMPTY:"非空判断"
          field-strategy: NOT_EMPTY
          #数据库类型
          db-type: MYSQL
      configuration:
        # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
        map-underscore-to-camel-case: true
        # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
        call-setters-on-nulls: true
        # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    
    # application-dev.yml
    
    spring:
      # 配置数据源信息
      datasource:
        dynamic:
          # 设置默认的数据源或数据源组,默认值即为master
          primary: fq
          # 严格匹配数据源,默认false,true未匹配到指定数据源时抛异常,false使用默认数据源
          strict: false
          datasource:
            # *库
            fq:
              url: jdbc:mysql://*:3306/*?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=GMT%2B8&autoReconnect=true&&useSSL=false
              driver-class-name: com.mysql.cj.jdbc.Driver
              type: com.alibaba.druid.pool.DruidDataSource
              username: *
              password: *
              # 下面为连接池的补充设置,应用到上面所有数据源中
              # 初始化大小,最小,最大
              initialSize: 10
              minIdle: 10
              maxActive: 100
              # 配置获取连接等待超时的时间
              maxWait: 60000
              # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
              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,wall,slf4j
              # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
              connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
              # 合并多个DruidDataSource的监控数据
              #useGlobalDataSourceStat: true
    
            # *库
            hx:
              url: jdbc:mysql://*:3306/*?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=GMT%2B8&autoReconnect=true&&useSSL=false
              driver-class-name: com.mysql.cj.jdbc.Driver
              type: com.alibaba.druid.pool.DruidDataSource
              username: *
              password: *
              # 下面为连接池的补充设置,应用到上面所有数据源中
              # 初始化大小,最小,最大
              initialSize: 10
              minIdle: 10
              maxActive: 100
              # 配置获取连接等待超时的时间
              maxWait: 60000
              # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
              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,wall,slf4j
              # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
              connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
              # 合并多个DruidDataSource的监控数据
              #useGlobalDataSourceStat: true
    
    # 应用代码
    # 在需要增删改的地方, 指定数据源@DS("hx")即可;
    
    @DS("hx")
    @Service("apiV1out1000Data01GzjgService")
    public class ApiV1out1000Data01GzjgServiceImpl implements ApiV1out1000Data01GzjgService {
        @Transactional
        @Override
        public RestResponse saveData(List<Out1000Data01ResponseVo> resultList) {
        aService.saveBatch(aEntityList);
        // .....
      }
    }
    

    相关文章

      网友评论

          本文标题:springboot mybatis-plus多数据源

          本文链接:https://www.haomeiwen.com/subject/utuevrtx.html