1、在application.properties文件 配置两个数据源

#默认使用 tomcat-jdbc
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource spring.datasource.data1.url=jdbc:mysql://127.0.0.1:3306/mysql-boot
spring.datasource.data1.username=root
spring.datasource.data1.password=123123
spring.datasource.data1.driver-class-name=com.mysql.jdbc.Driver spring.datasource.data2.url=jdbc:mysql://127.0.0.1:3306/mysql-confswh
spring.datasource.data2.username=root
spring.datasource.data2.password=123123
spring.datasource.data2.driver-class-name=com.mysql.jdbc.Driver

 2、创建一个datasource包,新建DataSource1,DataSource2两个文件,通过注解来配置数据源

DataSource1

package com.springboot.datasource;

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.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @Configuration//注解到spring容器中
@MapperScan(basePackages = "com.springboot.data1.mapper",sqlSessionFactoryRef = "data1SqlSessionFactory")
public class DataSource1 { /**
* 返回data1数据库的数据源
* @return
*/
@Bean(name="data1Source")
@Primary//主数据源
@ConfigurationProperties(prefix = "spring.datasource.data1")
public DataSource dataSource(){
return DataSourceBuilder.create().build();
} /**
* 返回data1数据库的会话工厂
* @param ds
* @return
* @throws Exception
*/
@Bean(name = "data1SqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("data1Source") DataSource ds) throws Exception{
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(ds);
return bean.getObject();
} /**
* 返回data1数据库的会话模板
* @param sessionFactory
* @return
* @throws Exception
*/
@Bean(name = "data1SqlSessionTemplate")
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("data1SqlSessionFactory") SqlSessionFactory sessionFactory) throws Exception{
return new SqlSessionTemplate(sessionFactory);
} /**
* 返回data1数据库的事务
* @param ds
* @return
*/
@Bean(name = "data1TransactionManager")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier("data1Source") DataSource ds){
return new DataSourceTransactionManager(ds);
}
}

DataSource2:

package com.springboot.datasource;

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.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @Configuration//注解到spring容器中
@MapperScan(basePackages = "com.springboot.data2.mapper",sqlSessionFactoryRef = "data2SqlSessionFactory")
public class DataSource2 { /**
* 返回data2数据库的数据源
* @return
*/
@Bean(name="data2Source")
@ConfigurationProperties(prefix = "spring.datasource.data2")
public DataSource dataSource(){
return DataSourceBuilder.create().build();
} /**
* 返回data2数据库的会话工厂
* @param ds
* @return
* @throws Exception
*/
@Bean(name = "data2SqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("data2Source") DataSource ds) throws Exception{
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(ds);
return bean.getObject();
} /**
* 返回data2数据库的会话模板
* @param sessionFactory
* @return
* @throws Exception
*/
@Bean(name = "data2SqlSessionTemplate")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("data2SqlSessionFactory") SqlSessionFactory sessionFactory) throws Exception{
return new SqlSessionTemplate(sessionFactory);
} /**
* 返回data2数据库的事务
* @param ds
* @return
*/
@Bean(name = "data2TransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier("data2Source") DataSource ds){
return new DataSourceTransactionManager(ds);
}
}

3、测试 Service&Mapper

    @RequestMapping("getTopicList")
public List<Map<String,Object>> getTopicList(){
List<Map<String,Object>> list1 = userServiceData1.getTopicListData1();
List<Map<String,Object>> list2 = userServiceData2.getTopicListData2();
return list1;
}

https://www.cnblogs.com/lijianda/p/11022892.html

附:

http://www.demodashi.com/demo/14622.html

最新文章

  1. C语言 &#183; 查找整数
  2. 常用C# DateTime 日期计算
  3. 每天一个 Linux 命令(19):find 命令概览
  4. java的final用法
  5. string用法
  6. NKUI框架使用
  7. 在C/C++程序里打印调用栈信息
  8. Android之开启手机系统自带铃声
  9. 设置Sublime Text2 中代码提示
  10. Velocity 的工作原理
  11. poj1637
  12. css中margin:0 auto没作用
  13. 【Scala】Scala之Methods
  14. GO开发[五]:golang结构体struct
  15. Angular19 自定义表单控件
  16. RHEL6.4安装nginx
  17. NLP VS NLU
  18. 通过Socket让远程电脑执行脚本
  19. android.view.WindowManager$BadTokenException: Unable to add window
  20. 用vlan实现同一网段的的各部门之间有的可以通信有的不可以通信

热门文章

  1. B树概述与简单应用示例(C#)
  2. 如何使用 RxJS 更优雅地进行定时请求
  3. .net上传文件,大文件及下载方式汇总(转)
  4. 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总
  5. SAP 下钻功能大全
  6. mysql字符集与比较规则
  7. vue2.0 知识体系示意图
  8. 关于vue里的$refs属性
  9. phpStorm+xdebug调试(php7.3)
  10. 字典 dict方法