1. 修改application.yml

注意

  • 连接多个数据库时,url要更改为jdbc-url,否则会报错。
  • 多数据源的配置中需要指定具体的名称来区分不同的数据库(上述配置中的dev和local,名称可以根据具体需求自定义)
  • mybatis配置别名不起作用,因此注释掉了。
#mybatis:
#  type-aliases-package: usts.eie.sbmp.pojo
spring:datasource:dev:username: rootpassword: rootjdbc-url: jdbc:mysql://114.55.174.146:3306/hello?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Driverlocal:username: rootpassword: rootjdbc-url: jdbc:mysql://localhost:3306/ssmbuild?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Driver

2. 添加数据库连接配置文件

dev数据源配置文件

@Configuration
@MapperScan(basePackages = "usts.eie.sbmp.dao.dev",sqlSessionFactoryRef = "devSqlSessionFactory")
public class DevDataSourceConfig {@Primary@Bean(name = "devDataSource")@ConfigurationProperties("spring.datasource.dev")public DataSource masterDataSource(){return DataSourceBuilder.create().build();}@Bean(name = "devSqlSessionFactory")public SqlSessionFactory sqlSessionFactory(@Qualifier("devDataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/dev/*.xml"));return sessionFactoryBean.getObject();}
}

local数据源配置文件

package usts.eie.sbmp.config;
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.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.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = "usts.eie.sbmp.dao.local",sqlSessionFactoryRef = "localSqlSessionFactory")
public class LocalDataSourceConfig {@Primary@Bean(name = "localDataSource")@ConfigurationProperties("spring.datasource.local")public DataSource masterDataSource(){return DataSourceBuilder.create().build();}@Bean(name = "localSqlSessionFactory")public SqlSessionFactory sqlSessionFactory(@Qualifier("localDataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/local/*.xml"));return sessionFactoryBean.getObject();}
}

注意

不同配置文件通过@MapperScan注解的内容来区分不同数据库下的mapper文件,由于这里连接的是两个数据库,所以这里两个值不能一样,即第一个和第二个数据库的mapper应该放在两个不同的目录下。否则启动会报找不到表的错误。

注解内容的对应关系如下图所示

3. 修改主启动类

4. 其他

除此之外,pojo,mapper,service的写法和之前一样。

注意:由于没有为pojo中的类配置别名,所以在写对应的 mapper.xml文件时,要把类名写完整 如下图所示

项目总体结构如下图所示

SpringBoot项目配置多数据源相关推荐

  1. SpringBoot JPA配置多数据源(同类型库)教程

    SpringBoot项目配置多数据源主要分为以下个步骤: 确定好所连接的数据库的资源(包括url username password) 将两个库的信息写入到配置文件中(application.yaml ...

  2. springboot jpa 配置多数据源

    jpa 多数据源配置 多个 mysql 数据库配置 springboot jpa 配置多数据源其实也并不难,只需要在 properties 或者 yml中简单配置并在项目中引入配置即可. 下面以 ym ...

  3. springboot项目配置视图解析器无效的问题

    springboot项目配置视图解析器无效的问题 今天springboot尝试配置视图解析器的时候,如图: 一切正常,视图解析器却始终无效.后面发现问题. 在控制器的注解要使用:@Controller ...

  4. SpringBoot项目配置明文密码泄露问题的处理方式

    SpringBoot项目配置明文密码泄露问题的处理方式: 1.引入jar包 <dependency>     <groupId>com.github.ulisesbocchio ...

  5. IDEA SpringBoot项目配置热更新,无需每次手动重启服务器

    IDEA SpringBoot项目配置热更新的步骤 在pom.xml中添加依赖: <dependency><groupId>org.springframework.boot&l ...

  6. springboot项目配置yml中数据源后报错Unknown database user_information(已解决)

    目录 问题现象: 问题分析: 解决方法: 问题现象: 今天在用.yml配置了springboot项目的Mysql数据源后,出现了无法访问数据库的问题: 报错如下: Unknown database ' ...

  7. SpringBoot(配置druid数据源、配置MyBatis、事务控制、druid 监控)

    SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少 数据层操作,所有的开发都一定秉持着 MVC 设计模式的原则,MVC 里面业务层不可少 ...

  8. db2 springboot 整合_[SpringBoot]快速配置多数据源(整合MyBatis)

    前言 由于业务需求,需要同时在SpringBoot中配置两套数据源(连接两个数据库),要求能做到service层在调用各数据库表的mapper时能够自动切换数据源,也就是mapper自动访问正确的数据 ...

  9. mybatis多数据源配置_随笔:springboot+mybatis 配置双数据源

    山石彦 | 作者 urlify.cn/vQzIne | 来源 最近工作中有用到双数据源,一个项目(中台)中需要操作两个不同的数据库.当时考虑到了两种方式, 1.通过http请求访问(A项目访问d1数据 ...

最新文章

  1. WC2018集训 吉老师的军训练
  2. Enterprise Library 4 缓存应用程序块的设计
  3. three.ar.js_我们如何通过AR.js使产品吉祥物栩栩如生
  4. low逼三人组、nb二人组、归并、希尔排序----小结
  5. 符号执行:利用Angr进行简单CTF逆向分析
  6. Altium Designer PCB快速布局
  7. 第七讲:数据契约(2)
  8. 为什么建议大家使用 Linux 开发
  9. irobot扫地机器人 电压_iRobot评测!扫地机器人究竟能有多好用?
  10. UltraEdit批量删除关键字所在的指定行
  11. CentOS6安裝Cacti
  12. 图像分类数据库_图像分类器-使用僧侣库对房屋房间类型进行分类
  13. P5641 【CSGRound2】开拓者的卓识(多项式)
  14. mysql数据库的链接地址_常用数据库连接URL地址大全
  15. phpcms文章 title 溢出 str_cut 省略号(······) - 代码篇
  16. 百度利用AI技术8、9月打击超83亿条有害信息
  17. 没有朋友,一个人旅行是什么感受?
  18. 张艾迪(创始人): 我的梦想与成长之路
  19. C++多态的练习——编写一个计算器项目
  20. 历年计算机二级考试Java真题 JAVA笔试试题及答案(部分套题)

热门文章

  1. 计算机快捷键汇总——让手指在键盘上跳跃起来
  2. 越狱第一至五季/全集迅雷下载
  3. 机器学习与计算机视觉入门项目——视频投篮检测(二)
  4. vmware convert P2V 错误二三事
  5. 南邮 OJ 1208 邮局选址问题
  6. HTML5 文件上传的2种方式
  7. VS2013快速安装教程,简单明了!
  8. mount命令挂载时出现libuuid.so.1 : no version information available
  9. chrome hosts文件管理工具 空白问题的解决
  10. SAP ERP 里的 Costing Sheet 成本核算表