springboot配置双数据源 MySQL和SqlServer
2018-08-29 10:33
661 查看
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; 直接调用就行
相关文章推荐
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- Springboot+Mybatis+Pagehelper+Aop动态配置Oracle、Mysql数据源
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- Springboot+Ebean配置Mysql数据源报错
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- SpringBoot+spring-date-jpa+Hibernate 整合mysql 与sqlserver 配置文件信息
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包----转
- SpringBoot 数据源配置 SqlServer
- SpringBoot+spring-date-jpa+Hibernate 整合mysql 与sqlserver 配置文件信息
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包 .
- SpringBoot 配置Mysql多数据源DataSource以及各种工作环境切换
- springboot添加多数据源连接池并配置Mybatis
- Spring Boot 、 Mybatis多数据源和动态数据源配置
- Spring Boot多数据源及其事务管理配置
- springBoot专题3---->springBoot与多数据源的配置
- spring boot 注解方式配置多数据源与使用
- SpringBoot配置自定义线程池的数据源
- SpringBoot配置多数据源