• 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;
        直接调用就行
    

      

  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/9552816.html
Copyright © 2020-2023  润新知