springBoot多数据源配置

原文地址:https://www.cnblogs.com/xiaofengfeng/p/9552816.html

1、application.properties

#sqlserver配置数据库
spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=hg-om
spring.datasource.username=sa
spring.datasource.password=sa
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

#mysql配置数据库
spring.datasource.url=jdbc:mysql://localhost:3306/hg-om
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver

2、数据库配置:配置目录下所用的数据库

FirstMybatisConfig

package com.ddp.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
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.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

@Configuration
@MapperScan(basePackages = { "com.ddp.**.mapper.first" }, sqlSessionTemplateRef = "autoTestSqlSessionTemplate")
public class FirstMybatisConfig {

	@Bean
	@ConfigurationProperties(prefix = "first.datasource")
	public DataSource autoTestDataSource() {
		return DataSourceBuilder.create().build();
	}

	@Bean
	public SqlSessionTemplate autoTestSqlSessionTemplate(
			@Qualifier("autoTestSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
		SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory);
		return template;
	}

	@Bean
	public SqlSessionFactory autoTestSqlSessionFactory(@Qualifier("autoTestDataSource") DataSource dataSource)
			throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(dataSource);

		// 添加XML目录
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		try {
			bean.setMapperLocations(resolver.getResources("classpath*:com/ddp/**/mapper/first/*.xml"));
			return bean.getObject();
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
}

SecondMybatisConfig

package com.ddp.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
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.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

@Configuration
@MapperScan(basePackages = { "com.ddp.**.mapper.second" }, sqlSessionTemplateRef = "userSqlSessionTemplate")
public class SecondMybatisConfig {

	@Bean(name = "userDataSource")
	@Primary // 必须加此注解,不然报错,下一个类则不需要添加
	@ConfigurationProperties(prefix = "second.datasource") // prefix值必须是application.properteis中对应属性的前缀
	public DataSource userDataSource() {
		return DataSourceBuilder.create().build();
	}

	@Bean
	public SqlSessionFactory userSqlSessionFactory(@Qualifier("userDataSource") DataSource dataSource)
			throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(dataSource);
		// 添加XML目录
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		try {
			bean.setMapperLocations(resolver.getResources("com/ddp/**/mapper/second/*.xml"));
			return bean.getObject();
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

	@Bean
	public SqlSessionTemplate userSqlSessionTemplate(
			@Qualifier("userSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
		SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); // 使用上面配置的Factory
		return template;
	}
}

3、对应mapper地址
在这里插入图片描述
4、启动类正常配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值