zoukankan      html  css  js  c++  java
  • springboot配置双数据源 MySQL和SqlServer

    1. pom文件的驱动jar包加上去,

    compile 'com.microsoft.sqlserver:mssql-jdbc:6.2.2.jre8'

    2. application.yml 

    spring:
    datasource:
            master:
              jdbc-url: jdbc:mysql://10.12.49.55:3306/smartcity-01
              username: root
              password: root
              # 使用druid数据源
              type: com.alibaba.druid.pool.DruidDataSource
              driverClassName: com.mysql.jdbc.Driver
            other:
              jdbc-url: jdbc:sqlserver://10.12.49.35:1433;DatabaseName=LandscapingDB
              username: sa
              password: Sql123
              #使用druid数据源
              type: com.alibaba.druid.pool.DruidDataSource
              driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver

    注意不要使用url,要使用jdbc-url

    主数据库配置:

    package com.pactera.scm.config;
     
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.SqlSessionTemplate;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.jdbc.DataSourceBuilder;
    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 javax.sql.DataSource;
     
    @Configuration
    @MapperScan(basePackages ="com.pactera.scm.mapper", sqlSessionFactoryRef = "masterSqlSessionFactory")
    public class MybatisDbMasterConfig {
     
        @Primary
        @Bean(name = "masterDataSource")
        @ConfigurationProperties(prefix = "spring.datasource.master")
        public DataSource dataSource() {
            return DataSourceBuilder.create().build();
        }
     
        @Primary
        @Bean(name = "masterSqlSessionFactory")
        public SqlSessionFactory sqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
            SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
            factoryBean.setDataSource(dataSource);
            factoryBean.setTypeAliasesPackage("com.pactera.scm.entity");
            factoryBean.setMapperLocations(
                    new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
            return factoryBean.getObject();
        }
     
        @Primary
        @Bean(name = "masterTransactionManager")
        public DataSourceTransactionManager transactionManager(@Qualifier("masterDataSource") DataSource dataSource) {
            return new DataSourceTransactionManager(dataSource);
        }
     
        @Bean(name = "masterSqlSessionTemplate")
        @Primary
        public SqlSessionTemplate testSqlSessionTemplate(
                @Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    }
    

      第二数据库配置:

    package com.pactera.scm.config;
     
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.SqlSessionTemplate;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.jdbc.DataSourceBuilder;
    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 javax.sql.DataSource;
     
    @Configuration
    @MapperScan(basePackages = "com.pactera.scm.otherDB", sqlSessionFactoryRef = "otherSqlSessionFactory")
    public class MybatisDbOtherConfig {
     
        @Bean(name = "otherDataSource")
        @ConfigurationProperties(prefix = "spring.datasource.other")
        public DataSource dataSource() {
            return DataSourceBuilder.create().build();
        }
     
        @Bean(name = "otherTransactionManager")
        public DataSourceTransactionManager transactionManager(@Qualifier("otherDataSource") DataSource dataSource) {
            return new DataSourceTransactionManager(dataSource);
     
        }
     
        @Bean(name = "otherSqlSessionFactory")
        public SqlSessionFactory basicSqlSessionFactory(@Qualifier("otherDataSource") DataSource basicDataSource) throws Exception {
            SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
            factoryBean.setDataSource(basicDataSource);
            factoryBean.setMapperLocations(
                    new PathMatchingResourcePatternResolver().getResources("classpath:other/*.xml"));
            return factoryBean.getObject();
        }
     
        @Bean(name = "otherSqlSessionTemplate")
        public SqlSessionTemplate testSqlSessionTemplate(
                @Qualifier("otherSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
            return new SqlSessionTemplate(sqlSessionFactory);
        }
    }
    

      

    启动类正常些就行了,不需要改动,保证能扫描到配置文件就行
    
    @SpringBootApplication
    @EnableConfigurationProperties
    @EnableScheduling
    public class ScmApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ScmApplication.class, args);
        }
    }
    使用:
    @Resource
    private AccountMapper accountMapper;
        直接调用就行
    

      

  • 相关阅读:
    day77
    75
    ElasticSearch集群的配置
    虚拟机VMware Workstation搭建Linux集群——VMware Tools的安装与配置
    ElasticSearch通过Rest Http API完成基本操作
    Maven笔记
    Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0
    Redis的安装与配置
    2017 3月份以来入职感受
    Java设计模式(05-- 代理模式模式 )
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/9552816.html
Copyright © 2011-2022 走看看