kiboyiscoming 2018-10-15 09:53 采纳率: 37.5%
浏览 7118
已采纳

mybatis-plus的baseMapper的方法在配置了多数据源的情况下如何使用

配置了多数据源后,mybatis-plus的baseMapper的里面的方法无法使用,必须在对应的xml中加上对应方法的配置才能使用

配置了多数据源后,mybatis-plus的baseMapper的里面的方法无法使用,必须在对应的xml中加上对应方法的配置才能使用

  • 写回答

6条回答

  • kiboyiscoming 2019-02-19 11:08
    关注

    最终配置如下

    package com.yt.config.jdbc;
    
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
    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.jdbc.core.JdbcTemplate;
    
    import javax.sql.DataSource;
    
    /**
     * @描述 多数据源连接配置类
     * @创建人 WS9430
     * @创建日期 2018-10-12
     */
    @Configuration
    public class JDBCDataSourceConfig {
        @Bean(name = "U8DataSource")
        @Qualifier("U8DataSource")
        @Primary
        @ConfigurationProperties(prefix="spring.datasource.druid.db1")
        public DataSource u8DataSource() {
            return DataSourceBuilder.create().build();
        }
    
    
    
        @Bean(name = "U8JdbcTemplate")
        public JdbcTemplate u8JdbcTemplate(@Qualifier("U8DataSource") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
        @Bean(name = "OADataSource")
        @Qualifier("OADataSource")
        @ConfigurationProperties(prefix="spring.datasource.druid.db2")
        public DataSource oaDataSource() {
            return DataSourceBuilder.create().build();
        }
    
    
    
        @Bean(name = "OAJdbcTemplate")
        public JdbcTemplate oaJdbcTemplate(@Qualifier("OADataSource") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
    
        @Bean(name = "U8DataSource3")
        @Qualifier("U8DataSource3")
        @ConfigurationProperties(prefix="spring.datasource.druid.db3")
        public DataSource u8DataSource3() {
            return DataSourceBuilder.create().build();
        }
    
    
    
        @Bean(name = "U8JdbcTemplate3")
        public JdbcTemplate u8JdbcTemplate3(@Qualifier("U8DataSource3") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
        @Bean(name = "U8DataSource4")
        @Qualifier("U8DataSource4")
        @ConfigurationProperties(prefix="spring.datasource.druid.db4")
        public DataSource u8DataSource4() {
            return DataSourceBuilder.create().build();
        }
    
    
    
        @Bean(name = "U8JdbcTemplate4")
        public JdbcTemplate u8JdbcTemplate4(@Qualifier("U8DataSource4") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
        @Bean(name = "U8DataSource5")
        @Qualifier("U8DataSource5")
        @ConfigurationProperties(prefix="spring.datasource.druid.db5")
        public DataSource u8DataSource5() {
            return DataSourceBuilder.create().build();
        }
    
    
    
        @Bean(name = "U8JdbcTemplate5")
        public JdbcTemplate u8JdbcTemplate5(@Qualifier("U8DataSource5") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
    }
    
    logging:
      level.root: info
      level.com.stylefeng: debug
      path: logs/
      file: guns.log
    # sqlserver数据库连接配置 S
    spring:
      aop:
        proxy-target-class: true
      datasource:
        db1:
          url: jdbc:sqlserver://12.1.236:1433;DatabaseName=UFDATA_107_2017 
          username: 1
          password: 1
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        db2:
          url: jdbc:sqlserver://1.1.52:1433;DatabaseName=ecology81 
          username: 1
          password: 1
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        db3:
          url: jdbc:sqlserver://11117.52:1433;DatabaseName=ecology81 
          username: 1
          password: 1
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        db4:
          url: jdbc:sqlserver://1.1.236:1433;DatabaseName=UFDATA_016_2016 
          username: 1
          password: 1
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        db5:
          url: jdbc:sqlserver://1.1.236:1433;DatabaseName=UFDATA_005_2018 
          username: 1
          password: 1
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        druid:
          initial-size: 10 #初始化连接数
          max-evictable-idle-time-millis: 20
          min-idle: 5 #最小空闲连接
          max-active: 500  #最大连接数量
          log-abandoned: true #是否在自动回收超时连接的时候打印连接的超时错误
          remove-abandoned: true #是否自动回收超时连接
          remove-abandoned-timeout: 600 #超时时间(以秒数为单位)
          max-wait: 5000  #<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
          test-on-borrow: true #申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
          test-while-idle: true #建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
          validation-query: select 1 #检测数据库的查询语句
          min-evictable-idle-time-millis: 600000  #每隔五分钟检测空闲超过10分钟的连接
          time-between-eviction-runs-millis: 300000 #1) Destroy线程会检测连接的间隔时间2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
          exception-sorter: true #根据dbType自动识别,当数据库抛出一些不可恢复的异常时,抛弃连接
          test-on-return: true  #归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
    # sqlserver数据库连接配置 E
    
    # thymeleaf模板配置 S
      thymeleaf:
        prefix: classpath:/templates/
        suffix: .html
        mode: HTML5
        encoding: UTF-8
        cache: false #热部署文件,页面不产生缓存,及时更新
      resources:
        chain:
          strategy:
            content:
              enabled: true
              paths: /**
      mvc:
        static-path-pattern: /static/**
    
    
    #    #jdbc配置
    #    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    #    spring.datasource.url=jdbc:mysql:///test
    #    spring.datasource.username=root
    #    spring.datasource.password=root
    #    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    #
    #    #连接池的设置
    #    #初始化时建立物理连接的个数
    #    spring.datasource.druid.initial-size=5
    #    #最小连接池数量
    #    spring.datasource.druid.min-idle=5
    #    #最大连接池数量 maxIdle已经不再使用
    #    spring.datasource.druid.max-active=20
    #    #获取连接时最大等待时间,单位毫秒
    #    spring.datasource.druid.max-wait=60000
    #    #申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
    #    spring.datasource.druid.test-while-idle=true
    #    #既作为检测的间隔时间又作为testWhileIdel执行的依据
    #    spring.datasource.druid.time-between-eviction-runs-millis=60000
    #    #销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接
    #    spring.datasource.druid.min-evictable-idle-time-millis=30000
    #    #用来检测连接是否有效的sql 必须是一个查询语句
    #    #mysql中为 select 'x'
    #    #oracle中为 select 1 from dual
    #    spring.datasource.druid.validation-query=select 'x'
    #    #申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
    #    spring.datasource.druid.test-on-borrow=false
    #    #归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
    #    spring.datasource.druid.test-on-return=false
    #    #当数据库抛出不可恢复的异常时,抛弃该连接
    #    spring.datasource.druid.exception-sorter=true
    #    #是否缓存preparedStatement,mysql5.5+建议开启
    #    #spring.datasource.druid.pool-prepared-statements=true
    #    #当值大于0时poolPreparedStatements会自动修改为true
    #    spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
    #    #配置扩展插件
    #    spring.datasource.druid.filters=stat,wall
    #    #通过connectProperties属性来打开mergeSql功能;慢SQL记录
    #    spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    #    #合并多个DruidDataSource的监控数据
    #    spring.datasource.druid.use-global-data-source-stat=true
    #    #设置访问druid监控页的账号和密码,默认没有
    #    #spring.datasource.druid.stat-view-servlet.login-username=admin
    #    #spring.datasource.druid.stat-view-servlet.login-password=admin
    #
    #    #jpa设置
    #    spring.jpa.database=mysql
    #    spring.jpa.show-sql=true
    #    spring.jpa.hibernate.ddl-auto=update
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题