Springboot MybatisPlus多数据源
前言
由于业务需要,时常会出现需要操作不同数据源的场景.本文介绍了Springboot MybatisPlus快速搭建多数据操作的案例.
1. 数据库创建
创建数据库1
CREATE DATABASE IF NOT EXISTS database1 default charset utf8 COLLATE utf8_general_ci
创建表1
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_demo1_user
-- ----------------------------
DROP TABLE IF EXISTS `t_demo_user1`;
CREATE TABLE `t_demo_user1` (
`id` int(11) NOT NULL COMMENT 'id',
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
`password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
`del_flag` bit(1) NOT NULL COMMENT '删除标记 0 未删除, 1 已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_demo1_user
-- ----------------------------
INSERT INTO `t_demo_user1` VALUES (1, '张三', '123456', b'0');
INSERT INTO `t_demo_user1` VALUES (2, '李四', '123456', b'0');
SET FOREIGN_KEY_CHECKS = 1;
创建数据库2
CREATE DATABASE IF NOT EXISTS database2 default charset utf8 COLLATE utf8_general_ci
创建表2
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_demo1_user
-- ----------------------------
DROP TABLE IF EXISTS `t_demo_user2`;
CREATE TABLE `t_demo_user2` (
`id` int(11) NOT NULL COMMENT 'id',
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
`password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
`del_flag` bit(1) NOT NULL COMMENT '删除标记 0 未删除, 1 已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_demo1_user
-- ----------------------------
INSERT INTO `t_demo_user2` VALUES (1, '苍老师', '123456', b'0');
INSERT INTO `t_demo_user2` VALUES (2, '玛利亚', '123456', b'0');
SET FOREIGN_KEY_CHECKS = 1;
2. 代码编写
2.1 创建springboot maven项目, POM.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.test.multidatasource</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
代码结构
核心配置
spring:
datasource:
dynamic:
primary: first #设置默认的数据源或者数据源组,默认值即为master
strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
datasource:
first:
url: jdbc:mysql://localhost:3306/database1
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
second:
url: jdbc:mysql://localhost:3306/database2
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
Mapper接口上指定需要访问的数据库表示,即定义在yml中的key值
测试
测试结果
结束
完整代码已上传到csdn文件中心,可以点击下载.免费的!
多数据源源码下载
喜欢的小伙伴还请帮忙三连哦!!!