配置数据库连接信息(application.properties)
下面的是我自己的数据库的配置信息(需修改成自己的数据库信息)

spring.datasource.a.name=amy-blog-datasource
master.datasource.a.driverClassName=com.mysql.cj.jdbc.Driver
master.datasource.a.url=jdbc:mysql://XXXXX:28780/springboot_demo?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=UTC
master.datasource.a.username=root
master.datasource.a.password=XXXXX
second.datasource.b.name=bmy-blog-datasource
second.datasource.b.driverClassName=com.mysql.cj.jdbc.Driver
second.datasource.b.url=jdbc:mysql://XXXXXX:3306/halodb?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=UTC
second.datasource.b.username=root
second.datasource.b.password=XXXXX

读取配置的这两个数据库注入Bean中

  • a数据库配置到Bean容器中(需要修改自己的Dao路径和Mapper路径)
package com.site.blog.my.core.config;import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
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 = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
public class MasterDataSourceConfig {// 精确到 master 目录,以便跟其他数据源隔离//需要修改自己的a数据库对应Dao层路径static final String PACKAGE = "com.site.blog.my.core.dao.master";//需要修改自己的a数据库对应mapper层路径static final String MAPPER_LOCATION = "classpath:mapper/master/*.xml";
//这里重点说一下,因为自己掉坑里了,我是mapper文件夹下有两个文件夹aa,bb,这里必须填到具体的文件夹,如mapper/aa或mapper/bb@Value("${master.datasource.a.url}")private String url;@Value("${master.datasource.a.username}")private String user;@Value("${master.datasource.a.password}")private String password;@Value("${master.datasource.a.driverClassName}")private String driverClass;@Bean(name = "masterDataSource")@Primarypublic DataSource masterDataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClass);dataSource.setUrl(url);dataSource.setUsername(user);dataSource.setPassword(password);return dataSource;}@Bean(name = "masterTransactionManager")@Primarypublic DataSourceTransactionManager masterTransactionManager() {return new DataSourceTransactionManager(masterDataSource());}@Bean(name = "masterSqlSessionFactory")@Primarypublic SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)throws Exception {final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(masterDataSource);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MasterDataSourceConfig.MAPPER_LOCATION));return sessionFactory.getObject();}
}
  • B数据库配置到Bean容器中(需要修改自己的Dao路径和Mapper路径)
package com.site.blog.my.core.config;import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
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
// 扫描 Mapper 接口并容器管理
@MapperScan(basePackages = SecondDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "secondSqlSessionFactory")
public class SecondDataSourceConfig {// 精确到 cluster 目录,以便跟其他数据源隔离//需要修改自己的a数据库对应Dao层路径static final String PACKAGE = "com.site.blog.my.core.dao.second";//需要修改自己的a数据库对应mapper层路径static final String MAPPER_LOCATION = "classpath:mapper/second/*.xml";@Value("${second.datasource.b.url}")private String url;@Value("${second.datasource.b.username}")private String user;@Value("${second.datasource.b.password}")private String password;@Value("${second.datasource.b.driverClassName}")private String driverClass;@Bean(name = "secondDataSource")public DataSource clusterDataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClass);dataSource.setUrl(url);dataSource.setUsername(user);dataSource.setPassword(password);return dataSource;}@Bean(name = "secondTransactionManager")public DataSourceTransactionManager clusterTransactionManager() {return new DataSourceTransactionManager(clusterDataSource());}@Bean(name = "secondSqlSessionFactory")public SqlSessionFactory clusterSqlSessionFactory(@Qualifier("secondDataSource") DataSource clusterDataSource)throws Exception {final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(clusterDataSource);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(SecondDataSourceConfig.MAPPER_LOCATION));return sessionFactory.getObject();}
}
  • 我需要时https协议增加一个接口,接口数据又在另一个数据库中,故此返回JSON数据
@Controller
public class IndexController {@ResourceSecondData secondData;@RequestMapping(value = "findTagCqw",method = RequestMethod.GET)@ResponseBodypublic String getTagInfo(){final List<Object> tagInfo = secondData.findTagInfo();return JSON.toJSONString(tagInfo);}
}

SpringBoot和Mybatis配置多个数据库相关推荐

  1. SpringBoot中mybatis配置多数据源

    首先需要创建多个数据库 简单的user表 CREATE TABLE `user` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAU ...

  2. springboot mybatis 配置多源数据库mysql+sqlserver

    1.添加驱动包 <!-- mybatis -->     <dependency>         <groupId>org.mybatis</groupId ...

  3. mybatis支持驼峰自动转换sql吗_四、SpringBoot整合mybatis——配置mybatis驼峰命名规则自动转换...

    简述: mybatis驼峰式命名规则自动转换: 使用前提:数据库表设计按照规范"字段名中各单词使用下划线"_"划分": 使用好处:省去mapper.xml文件中 ...

  4. springboot + mysql + mybatis配置

    上一篇文章中我们引入了基本的环境配置,接下来我们开始mysql相关配置: 依然是基于demo-springboot项目: 1.打开pom.xml,加入以下内容: <!--mysql--> ...

  5. SpringBoot+mysql+mybatis实现增删改查和分页查询功能模块 后端java代码

    后端开发环境搭建 远程仓库代码下载 https://gitee.com/cgbylh/CrudDemo.git 1.File->New->Project- 2.选择 Spring Init ...

  6. 详解SpringBoot整合Mybatis框架

    文章目录 前言 一.创建SpringBoot项目 二.配置Mybatis 1. 在pom.xml文件中添加jar包依赖 2. SpringBoot整合Mybatis配置文件 三.创建Mapper接口 ...

  7. 第 5 课 SpringBoot集成Mybatis(2)-配置文件版

    第五课 SpringBoot集成Mybatis(2)-配置文件版 文章目录 第五课 SpringBoot集成Mybatis(2)-配置文件版 1. 引入依赖:pom.xml 2. 配置applicat ...

  8. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  9. springboot 引入jdbc驱动_SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单...

    SpringBoot底层统一采用SpringData处理数据库,这一章主要来讲一下SpringBoot整合jdbc.durid.mybatis的方式. (一)整合jdbc 整合jdbc主要有三步: 1 ...

最新文章

  1. Scala 深入浅出实战经典 第88讲:Scala中使用For表达式实现map、flatMap、filter
  2. 学好机器学习必备这12条经验 !(附资料)
  3. 300万知乎多标签文本分类任务经验分享(附源码)
  4. Razor视图出现重复的解决方法
  5. 谷歌浏览器安卓版_谷歌翻译(在线翻译)下载-谷歌翻译下载安装安卓版v5.12.0...
  6. Spring boot删除员工
  7. poj 2112 Optimal Milking(二分+Floyd+最大流)
  8. Cosmos OpenSSD--greedy_ftl1.2.0(一)
  9. Java EE 8 MVC:Ozark入门
  10. 【啃不完的算法导论】- 动态规划 - 最长公共子序列(概念篇)
  11. CompSNN: A Lightweight Spiking Neural Network Based on Spatiotemporally Compressive Spike Features
  12. lunux安装多个mysql_实例详解linux下多个mysql5.7.19(tar.gz)安装图文教程
  13. C语言Ip获取mac,C语言怎么实现Windows下获取IP和MAC地址?
  14. oracle 时间段加减,ORACLE 时间加减操作
  15. Python网络爬虫第一课----网络爬虫之数据解析方式大全
  16. 软考网络规划设计师知识点总结--第一章(计算机网络概论)
  17. 使用echart的小指南
  18. uniApp 实现微信小程序和app视频播放flv格式视频监控
  19. 人民网总裁叶蓁蓁:要用四种眼光看待区块链热
  20. java登陆拦截器_登陆拦截器LoginInterceptor

热门文章

  1. Linux操作系统的基础知识
  2. Linux 【权限,粘滞位】
  3. magento邮件使用php,Magento模块示例发送邮件
  4. MCU学习笔记_STA及PT工具
  5. 控制微信小程序web view的返回按钮
  6. Vanilla是什么
  7. 「Vue 学习笔记 1」Vue 项目快速搭建,初始项目各个文件夹作用介绍和启动代码执行流程分析
  8. django--生鲜商城项目
  9. 赋能这个词我都快听吐了,还没想到怎么通过赋能挣钱
  10. 给expvarmon插上数据持久化的“翅膀”