Mybatis-Plus的多数据源你了解吗

 更新时间:2022年03月23日 17:17:52   作者:秃头的英才  
这篇文章主要为大家详细介绍了Mybatis-Plus的多数据源,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

多数据源

创建数据库

CREATE DATABASE mybatis_plus_1;
USE mybatis_plus_1;
CREATE TABLE product
(
    id BIGINT(20) NOT NULL COMMENT '主键id',
    NAME VARCHAR(30) NULL DEFAULT NULL COMMENT '商品名称',
    price INT(11) DEFAULT 0 COMMENT '价格',
    VERSION INT(11) DEFAULT 0 COMMENT '乐观锁版本号',
    PRIMARY KEY (id)
);

删除表

USE mybatis_plus;
DROP TABLE IF EXISTS product;

插入数据

INSERT INTO product (id, NAME, price) VALUES (1, '外星人', 100);

新建个工程。步骤和之前的一样

导入依赖

<dependency>
	<groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.5.0</version>
</dependency>

修改application.yml

spring:
  # 配置数据源信息
  datasource:
    dynamic:
      # 设置默认的数据源或数据源组,默认值即为master
      primary: master
      # 严格匹配数据源,默认false,true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: false
      datasource:
        master:
          url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&serverTimezone=GMT%2B8
          driver-class-name: com.mysql.cj.jdbc.Driver
          username: root
          password: "011012"
        save_1:
          url: jdbc:mysql://localhost:3306/mybatis_plus_1?useSSL=false&serverTimezone=GMT%2B8
          driver-class-name: com.mysql.cj.jdbc.Driver
          username: root
          password: "011012"

创建文件包pojo

package com.example.pojo;
import lombok.Data;
@Data
public class Product {
    private Integer id;
    private  String name;
    private Integer price;
    private Integer version;
}
package com.example.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
//所有无参构造和get方法和set方法还有哈希库方法注解(lombok)
//有参构造方法注解(@AllArgsConstructor)
@Data
@TableName("t_user")
public class User {
    //将该属性对应的字段指定为主键
    @TableId(value = "uid",type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
    private Integer sex;
}

创建文件包mapper(都是接口)

package com.example.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.Product;
import org.springframework.stereotype.Repository;
@Repository
public interface ProductMapper extends BaseMapper<Product> {
}
package com.example.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper extends BaseMapper<User> {
}

创建文件包Service

package com.example.Sevice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.pojo.Product;
public interface ProductService extends IService<Product> {
}
package com.example.Sevice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.pojo.User;
public interface UserService extends IService<User> {
}

在这个包下创建文件包impl

package com.example.Sevice.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.mapper.UserMapper;
import com.example.pojo.User;
import org.springframework.stereotype.Service;
@Service
@DS("master")
public class UserService  extends ServiceImpl<UserMapper, User> implements com.example.Sevice.UserService {
}
package com.example.Sevice.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.Sevice.ProductService;
import com.example.mapper.ProductMapper;
import com.example.pojo.Product;
import lombok.Data;
import org.springframework.stereotype.Service;
@Service
@DS("save_1")
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
}

写测试文件

@Autowired
    private UserService userService;
    @Autowired
    private ProductService productService;
    @Test
    public void test1(){
        System.out.println(userService.getById(1));
        System.out.println(productService.getById(1));
    }

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!    

相关文章

  • 六个Java集合使用时需要注意的事项

    六个Java集合使用时需要注意的事项

    这篇文章主要为大家详细介绍了六个Java集合使用时需要注意的事项,文中的示例代码讲解详细,对我们学习java有一定的帮助,需要的可以参考一下
    2023-01-01
  • SpringBoot接口或方法进行失败重试的实现方式

    SpringBoot接口或方法进行失败重试的实现方式

    为了防止网络抖动,影响我们核心接口或方法的成功率,通常我们会对核心方法进行失败重试,如果我们自己通过for循环实现,会使代码显得比较臃肿,所以本文给大家介绍了SpringBoot接口或方法进行失败重试的实现方式,需要的朋友可以参考下
    2024-07-07
  • SpringBoot 过滤器, 拦截器, 监听器的具体使用

    SpringBoot 过滤器, 拦截器, 监听器的具体使用

    本文主要介绍了SpringBoot 过滤器, 拦截器, 监听器的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Mybatis的xml中使用if/else标签的具体使用

    Mybatis的xml中使用if/else标签的具体使用

    本文主要介绍了Mybatis的xml中使用if/else标签的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • springBoot集成flowable的流程解析

    springBoot集成flowable的流程解析

    这篇文章主要介绍了springBoot集成flowable的流程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • SpringBoot集成SOL链的详细过程

    SpringBoot集成SOL链的详细过程

    Solanaj 是一个用于与 Solana 区块链交互的 Java 库,它为 Java 开发者提供了一套功能丰富的 API,使得在 Java 环境中可以轻松构建与 Solana 区块链交互的应用程序,这篇文章主要介绍了SpringBoot集成SOL链的详细过程,需要的朋友可以参考下
    2025-01-01
  • springboot bean扫描路径的实现

    springboot bean扫描路径的实现

    这篇文章主要介绍了springboot bean扫描路径的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • JVM性能调优实现原理及配置

    JVM性能调优实现原理及配置

    这篇文章主要介绍了JVM性能调优实现原理及配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • 多线程计数,怎么保持计数准确的方法

    多线程计数,怎么保持计数准确的方法

    这篇文章主要介绍了多线程计数的方法,有需要的朋友可以参考一下
    2014-01-01
  • 剑指Offer之Java算法习题精讲链表与数组专项训练

    剑指Offer之Java算法习题精讲链表与数组专项训练

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
    2022-03-03

最新评论