时间:2021-05-19
动态数据源
在很多具体应用场景的时候,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库。又比如业务A要访问A数据库,业务B要访问B数据库等,都可以使用动态数据源方案进行解决。接下来,我们就来讲解如何实现动态数据源,以及在过程中剖析动态数据源背后的实现原理。
实现案例
本教程案例基于 Spring Boot + Mybatis + MySQL 实现。
数据库设计
首先需要安装好MySQL数据库,新建数据库 master,slave,分别创建用户表,用来测试数据源,SQL脚本如下。
-- ------------------------------------------------------ 用户-- ------------------------------------------------------ Table structure for `sys_user`-- ----------------------------------------------------DROP TABLE IF EXISTS `sys_user`;CREATE TABLE `sys_user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `name` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(100) COMMENT '密码', `salt` varchar(40) COMMENT '盐', `email` varchar(100) COMMENT '邮箱', `mobile` varchar(100) COMMENT '手机号', `status` tinyint COMMENT '状态 0:禁用 1:正常', `dept_id` bigint(20) COMMENT '机构ID', `create_by` varchar(50) COMMENT '创建人', `create_time` datetime COMMENT '创建时间', `last_update_by` varchar(50) COMMENT '更新人', `last_update_time` datetime COMMENT '更新时间', `del_flag` tinyint DEFAULT 0 COMMENT '是否删除 -1:已删除 0:正常', PRIMARY KEY (`id`), UNIQUE INDEX (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户';新建工程
新建一个Spring Boot工程,最终代码结构如下。
添加依赖
添加Spring Boot,Spring Aop,Mybatis,MySQL,Swagger相关依赖。Swagger方便用来测试接口。
pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:///liuge1988/spring-boot-demo.git总结
以上所述是小编给大家介绍的Spring Boot + Mybatis 实现动态数据源案例分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
之前写过一篇博客《Spring+Mybatis+Mysql搭建分布式数据库访问框架》描述如何通过Spring+Mybatis配置动态数据源访问多个数据库。但是之
本章目标整合Mybatis,并集成Druid数据源可视化监控Druid数据源使用JPA生成数据表利用注解实现数据库的事物利用注解动态配置数据源全局异常捕获校验请
SpringBoot如何快速配置数据源;有如下两种方式:通过spring-boot-starter-jdbc快速配置数据源自定义数据源DataSource首先我
你在使用MyBatis的过程中,是否有想过多个数据源应该如何配置,如何去实现?出于这个好奇心,我在DruidWiki的数据库多数据源中知晓Spring提供了对多
一、创建基于ThreadLocal的动态数据源容器,保证数据源的线程安全性packagecom.bounter.mybatis.extension;/***基于