1.在application.properties中配置数据连接参数

spring.datasource.test1.jdbc-url=jdbc:sqlserver://localhost:1433;databasename=AA
spring.datasource.test1.username=root
spring.datasource.test1.password=root
spring.datasource.test1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.test2.jdbc-url=jdbc:sqlserver://localhost:1433;databasename=AA_Sq
spring.datasource.test2.username=root
spring.datasource.test2.password=root
spring.datasource.test2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

2.配置数据源

AA数据库的配置

import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
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;
//basePackages为dao层接口(用来与数据库做交互)所在的包名
@Configuration
@MapperScan(basePackages = {"com.xx.sourceone.mapper"},sqlSessionFactoryRef = "test1SqlSessionFactory")
public class DataByAA {//  @ConfigurationProperties注解的作用就是从application.properties中读取以  spring.datasource.test1 开头的那些配置,并将其设置为数据源的配置@Bean(name = "test1DataSource")@ConfigurationProperties(prefix = "spring.datasource.test1")public DataSource testDataSource(){return DataSourceBuilder.create().build();}@Bean(name = "test1SqlSessionFactory")public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource)throws Exception{MybatisSqlSessionFactoryBean bean=new MybatisSqlSessionFactoryBean();bean.setDataSource(dataSource);
//        路径地址为mapper.xml所在的位置,这个xml是配置文件,处在resource里面,主要用来写查询语句bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapperone/**.xml"));return bean.getObject();}@Bean(name = "test1TransactionManager")public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}@Bean(name = "test1SqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}
}

AA_Sq数据库的配置

import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
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.xx.sourcetwo.mapper"},sqlSessionFactoryRef = "test2SqlSessionFactory")
public class DataByAASq {@Bean(name = "test2DataSource")@ConfigurationProperties(prefix = "spring.datasource.test2")public DataSource testDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "test2SqlSessionFactory")public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();bean.setDataSource(dataSource);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mappertwo/**.xml"));return bean.getObject();}@Bean(name = "test2TransactionManager")public DataSourceTransactionManager testTransactionManager(@Qualifier("test2DataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "test2SqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}
}

项目结构如下图

3.controller 层

访问AA数据库

@RestController
public class XxWebController {@AutowiredXxWebMapper xxWebMapper;@PostMapping("/api/list")public Result getList(String sjname){Map<String,Object> map = new HashMap<>();try {XxWeb sjName = xxWebMapper.selectOne(new QueryWrapper<XxWeb>().eq("SjName", sjname));map.put("datas",sjName);return Result.ok(map);}catch (Exception e){return Result.fail(901);}}
}

访问AA——Sq数据库

@RestController
public class RfgcglController {@AutowiredUserMapper userMapper;@PostMapping("/api2/list")public Result getList(String yhmc){Map<String,Object> map = new HashMap<>();try {User yhmc1 = userMapper.selectOne(new QueryWrapper<User>().eq("yhmc", yhmc));map.put("datas",yhmc1);return Result.ok(map);}catch (Exception e){e.printStackTrace();return Result.fail(901);}}
}

配置多数据源时,通过查找mybatis-plus官方文档得知,不能使用原生的 SqlSessionFactory

注意红色标注的代码,如果mybatisplus配置多数据源时使用的SqlSessionFactory不是MybatisSqlSessionFactoryBean,会报错Invalid bound statement (not found);如果mybatisplus配置多数据源时不设置扫描XML文件的路径,也会报错Invalid bound statement (not found);如果mybatisplus配置多数据源时配置扫描XML文件的路径不正确,还会报错Invalid bound statement (not found)

多数据源:spring boot+mybatisplus配置相关推荐

  1. Spring Boot Jpa 配置多个数据源,并读取其中一个表的具体数据

    总体简介: Spring Boot Jpa配置多个数据源(此次两个mysql数据库),访问其中一个库 alime_counsel_assign_log下的assign_data_backflow表,实 ...

  2. Spring Boot —— Mybatis-Plus(小试小刀)

    文章目录 Spring Boot -- Mybatis-Plus 简介 集成步骤 加依赖 加配置 加注解 使用生成器 执行生成器 测试的数据结构SQL demo地址 Spring Boot -- My ...

  3. Spring Boot自动配置原理、实战

    Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...

  4. Spring Boot 自动配置的 “魔法” 是如何实现的?

    转载自  Spring Boot 自动配置的 "魔法" 是如何实现的? Spring Boot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数 ...

  5. Spring Boot核心配置

    转载自 Spring Boot核心配置 启动类 在包根目录下添加启动类,必须包含main方法,再添加Spring Boot启动方法: SpringApplication.run(SampleContr ...

  6. 微服务之spring Boot+MyBatis-Plus +mysql框架

    小白也会搭建spring Boot+MyBatis-Plus +mysql框架 一.新建一个微服务模块cloud-user 1. 搭建步骤 二.编码 1.新建UserController类 2.新建U ...

  7. 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理

    本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...

  8. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  9. Spring Boot 属性配置和使用

    spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...

最新文章

  1. IBM AIX JFS2文件系统数据恢复技术
  2. 原生ajax封装,数据初始化,
  3. linux软件可以在所有发行版运行吗,Linux通用的跨发行版的3大软件包管理器
  4. Spring Boot和数据库初始化
  5. 第三十七期:刷脸支付叫好不叫座,为啥消费者和商家都不愿用先进科技?
  6. C++:47---绝不重新定义继承而来的缺省参数值
  7. 数据结构和算法———P2 算法概述
  8. 思科修复运营商级路由器中的两个已遭利用漏洞
  9. 最小生成树的普里姆算法c实现
  10. 在dropdownlist中使用enum
  11. 在线问题反馈模块实战(十七):实现excel模板在线下载功能
  12. Android 蓝牙AVRCP 专题(2)-----黑名单
  13. 在Linux上恢复误删除的文件或目录
  14. 深信服“监控员工跳槽倾向”引争议,律师称未告知员工涉嫌违法
  15. antdesign 柱状图_010-ant design pro advanced 图表
  16. 随便谈谈IT行业的几个定律
  17. 非结构化数据的存储与查询
  18. 我眼中的大数据(一)
  19. 秒杀系统(SecKillGoods)
  20. php 找祖先,鲸鱼的祖先有4条腿

热门文章

  1. C#Windows 服务制作安装删除. 用户注销后,程序继续运行 (转载)
  2. ASP.NET AJAX客户端编程之旅(二)——知其所以然
  3. python 筛选提取连续多行_没有比这更简单的Python入门案例,用python打印你的宠物小精灵...
  4. python连接池原理_python redis之连接池的原理
  5. mysql 批量修改数据库存储引擎_mysql批量修改表存储引擎
  6. android服务器概念,Android_tv_metro
  7. 小米0扇区完整写入_真材实料霸榜DXOMARK,小米10系列凭三个卖点“感动人心”...
  8. linux程序实例获取,Linux命令备忘实例(4)——获取内容
  9. 10 windows 启动虚拟机报错_Windows 系统如何安装 Docker
  10. php如何替换 前的空格,php空格如何替换