SpringBoot + mybatis + druid 配置两个数据源

SpringBoot + mybatis + druid 配置两个数据源

目录

文章目录 

前言

一、SpringBoot + mybatis + druid 配置两个数据源?

二、使用步骤

1.YML文件的配置

2.Mybatis-config的配置

3.从数据源的配置

4.pom文件

 

总结



提示:以下是本篇文章正文内容,下面案例可供参考

一、SpringBoot + mybatis + druid 配置两个数据源?

工作中少不了与数据库打交道 在工作中应该怎么去配置两个数据源呢?

二、使用步骤

1.YML文件的配置

代码如下(示例):

spring:
  datasource:
    db1:
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: oracle.jdbc.OracleDriver
      url: 
      username: 
      password:
    db2:
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: dm.jdbc.driver.DmDriver
      url: 注意url不要写成jdbc-url 会报URL找不到
      username: 
      password:
mybatis:
  config-location: classpath:mybatis-config.xml
  mapper-locations: classpath:mapper/AMapper/*.xml -> xml文件地址一定要写对 

 

2.Mybatis-config的配置

粘贴到resourcces就可以用





    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
 
    
        
        
        
        
        
        
    
    

3.从数据源的配置

@Configuration //注解到spring容器中
@MapperScan(basePackages = "com.et.xxx",sqlSessionTemplateRef = "db2SqlSessionTemplate") //这地方改成自己的Mapper
public class DataSourceDM {


    @Bean
    //引入YML配置
    @ConfigurationProperties(prefix = "spring.datasource.db2")
    public DataSource db2DataSource() {
        //很多文章返回的dataSource 这里需要返回德鲁伊连接池 否则会报一些奇怪的错误
        return new DruidDataSource();
    }

    @Bean
    public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);                                                //不要忘记改
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/xxx/*.xml"));

        //这一段是开启驼峰转换~~~~~~~~~~~~
        SqlSessionFactory sqlSessionFactory = bean.getObject();
        org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();
        configuration.setMapUnderscoreToCamelCase(true);
        return bean.getObject();
    }

    @Bean
    public DataSourceTransactionManager db2TransactionManager(@Qualifier("db2DataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean
    public SqlSessionTemplate db2SqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

主数据源一毛一样 复制下来再写一遍 db2改成db1 @Bean下面加一个@Primary 来表明主数据源 还有需要改的地方千万别忘记

 

4.pom文件


   org.springframework.boot
   spring-boot-starter-web


   org.springframework.boot
   spring-boot-starter-jdbc


   org.mybatis.spring.boot
   mybatis-spring-boot-starter
   2.1.4


   com.alibaba
   druid
   1.1.12


   com.oracle.database.jdbc
   ojdbc8
   runtime



          com.alibaba
   druid-spring-boot-starter
   1.2.4


   com.dm7
   Dm7JdbcDriver17
   1.0
   system
   ${project.basedir}/lib/Dm7JdbcDriver17.jar

我用的Oracle和DM数据库 看看自己数据库改一改

 


总结

还有就是一些该死的坑
报错 什么[H2 URL] 启动类
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

如果 报ibatis的错看看自己的mapper xml 和 mapper接口的路径 对不对

如果报The Network Adapter could not establish the connection 快去看看自己的url username password是不是写错了

剩下的没啥了 报错不要急 一点一点排查

你可能感兴趣的:(mysql,sql,数据库,java,spring)