springboot配置双数据源(Mybatis)

实现步骤

在启动类上加上@EnableAutoConfiguration

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, MybatisAutoConfiguration.class, PageHelperAutoConfiguration.class})

添加数据源配置类

mysql数据源

@Configuration
@MapperScan(basePackages = {"com.xxx.xxx.common.xiaoguan"}, sqlSessionFactoryRef = "mysqlSessionFactory")
public class MyBatisMysqlConfig {

	@Value("${spring.datasource.xxx.url}")
	private String dbUrl;

	@Value("${spring.datasource.xxx.username}")
	private String username;

	@Value("${spring.datasource.xxx.password}")
	private String password;

	/**
	 * 数据源.
	 *
	 * @return
	 */
	@Bean
	public DataSource mysqlDataSource() {
		MysqlDataSource datasource = new MysqlDataSource();
		datasource.setUrl(dbUrl);
		datasource.setUser(username);
		datasource.setPassword(password);
		// datasource.setDr
		// datasource.setDriverClassName(driverClassName);
		/*
		 * try { datasource.setFilters(filters); } catch (SQLException e) { }
		 */
		return datasource;
	}

	@Bean
	public SqlSessionFactory mysqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
		//PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
		//分页插件
		Interceptor interceptor = new PageInterceptor();
		Properties properties = new Properties();
		//数据库
		properties.setProperty("helperDialect", "mysql");
		//是否分页合理化
		properties.setProperty("reasonable", "true");
		interceptor.setProperties(properties);

		factoryBean.setPlugins(new Interceptor[] {interceptor});
		factoryBean.setDataSource(dataSource);
		// factoryBean.setTypeAliasesPackage("com.app.domain.entity");// 指定基包
		// factoryBean.setMapperLocations(resolver.getResources("classpath:mapper/**/*.xml"));//
		return factoryBean.getObject();
	}
}

oracle数据源

@MapperScan(basePackages = "com.xxx.xxx.common.problem.mapper",sqlSessionFactoryRef = "oracleSessionFactory")
@Configuration
public class MyBatisOracleConfig {

	@Value("${spring.datasource.xxx.url}")
	private String dbUrl;

	@Value("${spring.datasource.xxx.username}")
	private String username;

	@Value("${spring.datasource.xxx.password}")
	private String password;

	@Value("${spring.datasource.xxx.driver-class-name}")
	private String driverClassName;

	/**
	 * 数据源.
	 *
	 * @return
	 */
	@Bean
	public DataSource oracleDataSource() {
		return DataSourceBuilder.create().url(dbUrl).driverClassName(driverClassName).username(username).password(password).build();
	}

	@Bean
	public SqlSessionFactory oracleSessionFactory(@Qualifier("oracleDataSource") DataSource oracleDataSource) throws Exception {
		//PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
		//分页插件
		Interceptor interceptor = new PageInterceptor();
		Properties properties = new Properties();
		//数据库
		properties.setProperty("helperDialect", "oracle");
		//是否分页合理化
		properties.setProperty("reasonable", "true");
		interceptor.setProperties(properties);

		factoryBean.setPlugins(new Interceptor[] {interceptor});
		factoryBean.setDataSource(oracleDataSource);
		// factoryBean.setTypeAliasesPackage("com.app.domain.entity");// 指定基包
		// factoryBean.setMapperLocations(resolver.getResources("classpath:mapper/**/*.xml"));//
		return factoryBean.getObject();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值