8.使用mybatis-plus配置多数据源

使用mybatis配置多数据源

  • 一、查阅官方文档
  • 二、准备工作
    • 1. 创建数据库
    • 2. 新建项目
  • 三、引入依赖
  • 四、配置文件
  • 五、编写测试代码
    • 1. 实体类
    • 2. service
    • 3. mapper
    • 4. 启动类
    • 5. 测试类

一、查阅官方文档

Mybatis-多数据源: https://baomidou.com/pages/a61e1b/#%E6%96%87%E6%A1%A3-documentation

  1. 引入dynamic-datasource-spring-boot-starter
  2. 配置数据源
  3. 使用@DS切换数据源

当然在这之前需要做一些准备工作

二、准备工作

1. 创建数据库

  1. mybatis_plus
CREATE DATABASE mybatis_plus;
USE `mybatis_plus`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL COMMENT '主键ID',
  `name` varchar(30) DEFAULT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. mybatis_plus_1
CREATE DATABASE mybatis_plus_1;
USE `mybatis_plus_1`;

DROP TABLE IF EXISTS `product`;

CREATE TABLE `product` (
  `id` bigint(20) NOT NULL COMMENT '主键ID',
  `NAME` varchar(30) DEFAULT NULL COMMENT '商品名称',
  `price` int(11) DEFAULT '0' COMMENT '价格',
  `VERSION` int(11) DEFAULT '0' COMMENT '乐观锁版本号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 新建项目

8.使用mybatis-plus配置多数据源_第1张图片

三、引入依赖


<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.0modelVersion>
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.7.4version>
        <relativePath/> 
    parent>
    <groupId>com.examplegroupId>
    <artifactId>demo03artifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>demo03name>
    <description>demo03description>
    <properties>
        <java.version>1.8java.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starterartifactId>
        dependency>

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.5.1version>
        dependency>

        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
        dependency>
        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>dynamic-datasource-spring-boot-starterartifactId>
            <version>3.5.1version>
        dependency>

        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>

project>

四、配置文件

配置多数据源

spring:
  # 配置数据源信息
  datasource:
    dynamic:
      primary: master
      strict: false
      datasource:
        master:
            url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
            driver-class-name: com.mysql.cj.jdbc.Driver
            username: root
            password: 123456
        slave_1:
            url: jdbc:mysql://localhost:3306/mybatis_plus_1?characterEncoding=utf-8&useSSL=false
            driver-class-name: com.mysql.cj.jdbc.Driver
            username: root
            password: 123456

五、编写测试代码

1. 实体类

Product

import lombok.Data;

@Data
public class Product {
    private Long id;
    private String name;
    private Integer price;
}

User

@Data
public class User{


    private Long id;
    private String name;
    private Integer age;
    private String email;

}

2. service

  1. UserService
public interface UserService extends IService<User> {

}
  1. UserServiceImpl
// 注意这里写配置文件中数据源的名称
@DS("master")
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

}
  1. ProductService
public interface ProductService extends IService<Product> {
}
  1. ProductServiceImpl
//数据源名称
@DS("slave_1")
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
}

3. mapper

  1. UserMapper
public interface UserMapper extends BaseMapper<User> {

}
  1. ProductMapper
public interface ProductMapper extends BaseMapper<Product> {

}

4. 启动类

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
//这里配置包扫描的路径 mapper
@MapperScan("com.example.demo03.mapper")
public class Demo03Application {

    public static void main(String[] args) {
        SpringApplication.run(Demo03Application.class, args);
    }

}

5. 测试类

@SpringBootTest
class Demo03ApplicationTests {

    @Autowired
    private UserService userService;

    @Autowired
    private ProductService productService;

    @Test
    public void testDynamicDataSource() {
        System.out.println(userService.getById(1L));

        System.out.println(productService.getById(1L));
    }

}

测试结果
8.使用mybatis-plus配置多数据源_第2张图片
配置多数据源成功

你可能感兴趣的:(Spring,SpringMVC,MyBatis,mybatis,java,spring,boot)