SpringBoot系列(13): 解锁Mybatis多数据源的最简姿势

摘要:正常情况下,一个应用一个数据库是标配,也是很多小伙伴在开发企业级应用时最为常见的做法;然而,出于某些特殊的情况,一个应用需要跨数据库实现不同的功能需求 也逐渐变得很普遍!本文,我们将分享介绍一种最为简单的、基于注解式(Java Config)的方式实现Mybatis多数据源的访问。

内容:所谓多数据源,说白了,其实就是“在应用系统中访问多个数据库实现某些业务功能”的另一种诠释!目前一些开源的项目也采用了各种不同的方式实现了“多数据源”,常见的包括“基于Mybatis和Spring JDBC Tempalte数据源 混合实现多数据源”、“基于Mybatis和Spring AOP实现多数据源”;

第一种方式毕竟混合了两种实现方式,对于咱们程序员来讲,就意味着你既需要掌握Mybatis、也需要掌握Spring JDBC Template的编码实现DAO层的操作、访问;

对于第二种方式,有些小伙伴看到AOP可能有点退怯,而且事实上这种实现的过程,需要你在“访问、操作数据库的方法或者类上”额外添加某个注解,标明来源于那个数据源!

本文,我们将不介绍上面这两种,而是采用一种更为简单、便捷、纯粹基于Mybatis的方式来实现多数据源,实战完成过后,你会发现,这种方式实现起来确实很简单,很简洁,很爽,当然啦,一些包目录结构的规范还是需要遵循的,不要慌,问题不大!

废话不多讲,下面,我们就进入实战过程!

(1)既然是“多数据源”,那么得需要建立多个数据库,等待被访问。在这里,我们仍然沿用了“technology”数据库,并新建了一个新的数据库“sb_redis”(在里面建立了一张数据库表 sys_config),对该数据库表采用Mybatis逆向工程生成相应的Entity、Mapper、Mapper.xml即可。

相应的源代码、数据库大家检出来一看就行了!以下为该数据库表sys_config的DDL:

CREATE TABLE `sys_config` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '字典类型',
  `name` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '字典名称',
  `code` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '选项编码',
  `value` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '选项取值',
  `order_by` int(11) DEFAULT '1' COMMENT '排序',
  `is_active` tinyint(4) DEFAULT '1' COMMENT '是否有效(1=是;0=否)',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_type_code` (`type`,`code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='字典配置表';

(2)在这里值得一提的是,“多数据源实战”也有一些要求,即“主数据源Primary”只能有一个,“从数据源Second…”可以有多个,类似于数据库集群的“Master-Slave”模式或者ZooKeeper集群的 “Leader-Follower”选举机制。

更多请见:http://www.mark-to-win.com/tutorial/51031.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值