关于多数据源的配置,前面和大伙介绍过 JdbcTemplate 多数据源配置,那个比较简单,本文来和大伙说说 MyBatis 多数据源的配置。

其实关于多数据源,我的态度还是和之前一样,复杂的就直接上分布式数据库中间件,简单的再考虑多数据源。这是项目中的建议,技术上的话,当然还是各种技术都要掌握的。

工程创建

首先需要创建 MyBatis 项目,项目创建和前文的一样,添加 MyBatis、 MySQL 以及 Web 依赖:

项目创建完成后,添加 Druid 依赖,和 JdbcTemplate 一样,这里添加 Druid 依赖也必须是专为 Spring Boot 打造的 Druid,不能使用传统的 Druid。完整的依赖如下:

<dependency>

多数据源配置

接下来配置多数据源,这里基本上还是和 JdbcTemplate 多数据源的配置方式一致,首先在 application.properties 中配置数据库基本信息,然后提供两个 DataSource 即可,这里我再把代码贴出来,里边的道理条条框框的,大伙可以参考前面的文章,这里不再赘述。

application.properties 中的配置:

spring.datasource.one.url=jdbc:mysql:///test01?useUnicode=true&characterEncoding=utf-8
spring.datasource.one.username=root
spring.datasource.one.password=root
spring.datasource.one.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.two.url=jdbc:mysql:///test02?useUnicode=true&characterEncoding=utf-8
spring.datasource.two.username=root
spring.datasource.two.password=root
spring.datasource.two.type=com.alibaba.druid.pool.DruidDataSource

然后再提供两个 DataSource,如下:

@Configuration

MyBatis 配置

接下来则是 MyBatis 的配置,不同于 JdbcTemplate,MyBatis 的配置要稍微麻烦一些,因为要提供两个 Bean,因此这里两个数据源我将在两个类中分开来配置,首先来看第一个数据源的配置:

@Configuration

创建 MyBatisConfigOne 类,首先指明该类是一个配置类,配置类中要扫描的包是 org.javaboy.mybatis.mapper1 ,即该包下的 Mapper 接口将操作 dsOne 中的数据,对应的 SqlSessionFactory 和 SqlSessionTemplate 分别是 sqlSessionFactory1 和 sqlSessionTemplate1,在 MyBatisConfigOne 内部,分别提供 SqlSessionFactory 和 SqlSessionTemplate 即可, SqlSessionFactory 根据 dsOne 创建,然后再根据创建好的SqlSessionFactory 创建一个 SqlSessionTemplate。

这里配置完成后,依据这个配置,再来配置第二个数据源即可:

@Configuration

好了,这样 MyBatis 多数据源基本上就配置好了,接下来只需要在 org.javaboy.mybatis.mapper1 和 org.javaboy.mybatis.mapper2 包中提供不同的 Mapper,Service 中注入不同的 Mapper 就可以操作不同的数据源。

mapper 创建

org.javaboy.mybatis.mapper1 中的 mapper:

public 

对应的 XML 文件:

<?xml version="1.0" encoding="UTF-8" ?>

org.javaboy.mybatis.mapper2 中的 mapper:

public 

对应的 XML 文件:

<?xml version="1.0" encoding="UTF-8" ?>

接下来,在 Service 中注入两个不同的 Mapper,不同的 Mapper 将操作不同的数据源。

好了,关于 MyBatis 多数据源本文就先说到这里。

druid 多数据源_Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源相关推荐

  1. druid 手动指定数据源_Spring Boot2 系列教程(二十)整合JdbcTemplate 多数据源

    多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...

  2. docker 打包镜像_Spring Boot2 系列教程(四十一)部署 Spring Boot 到远程 Docker 容器

    不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案. 不同于传 ...

  3. freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

    今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...

  4. Java NIO系列教程(十二) Java NIO与IO

    原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html 作者:Jakob Jenkov   译者:郭蕾    校对:方腾飞 当学习了Java ...

  5. eureka集群只注册一个_Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇

    Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇 本文主要内容: 1:spring cloud整合Eureka总结 本文是由凯哥(凯哥Java:kagejava ...

  6. mybatis依赖_Spring Boot2 系列教程(二十一)整合 MyBatis

    前面两篇文章和读者聊了 Spring Boot 中最简单的数据持久化方案 JdbcTemplate,JdbcTemplate 虽然简单,但是用的并不多,因为它没有 MyBatis 方便,在 Sprin ...

  7. 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信

    一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解React Native与iOS之间的通信交互. 本篇主要分为两部分讲解:(关于其中讲解的OC语法等不介绍,不懂的请自行 ...

  8. 推荐系统系列教程之十二:Facebook是怎么为十亿人互相推荐好友的?

    编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了十一期,今天按约推出第十二期:Facebook是怎么为十亿人互相推荐好友的.希望朋友们多点"在看",多多 ...

  9. 架构思维成长系列教程(十二)- 云平台架构设计

    背景 云平台是个非常宽泛的领域,一般分成:IaaS 基础设施即服务.PaaS 平台即服务.SaaS 软件即服务,本文侧重介绍企业私有云平台架构. 内容 云平台技术架构 云平台技术架构 如图所示,这是一 ...

最新文章

  1. C# 获取指定目录下所有文件信息、移动目录、拷贝目录
  2. JS实现的ajax和同源策略
  3. C语言 递归实现辗转相除法 和 辗转相减法
  4. pps服务器未响应_服务响应时间与分布
  5. 回馈粉丝,包邮送一台全新iPad
  6. 跟牛牛老师学python自动化的第四天
  7. Investigating Div-Sum Property【数位DP】
  8. cxf发布 webservice服务
  9. Python3.x的print()输出问题
  10. utf-8编码引起js输出中文乱码的解决办法
  11. 从照相机到jpeg的流程中分析图像噪声
  12. SQL数据库日志文件丢失,日志文件恢复的办法
  13. 1小时,不会代码的我如何完成 网易云音乐 大作业网页制作?(IVX 第2篇)
  14. Ubuntu 下无线网卡RTL8723BE不稳定的解决办法
  15. 2021年全球高级相变材料(PCM)收入大约1513.7百万美元,预计2028年达到3220.4百万美元
  16. Qt for linux 安装
  17. php 集成 spss,〖SPSS Modeler〗 IBM SPSS Modeler 整合不同数据库之间的数据
  18. python工程师怎么考-【一个合格的Python工程师需要达到怎样的编程水平】
  19. pm961 mysql_搭建Memcache服务详解
  20. Numpy:数组(Ndarray)操作之数组的转换

热门文章

  1. 为下半年圣诞节提前准备素材模板,可临摹psd分层模板!
  2. 淘宝设计万能PSD分层模板(简约页面设计——少即是多)
  3. matlab图片连续显示,Matlab利用定时器连续显示图片的问题
  4. C++ log日志类实现
  5. Windows下Lua安装环境配置教程
  6. CPL,RPL和DPL的关系
  7. 十个问题理解Linux epoll工作原理:惊群,
  8. GDB watch的使用
  9. ELF(Executable Linkable Format)文件存储格式
  10. Cilium提供并透明地保护应用程序工作负载之间的网络连接和负载平衡:什么是eBPF和XDP?