MybatisPlus拓展——实现多数据源操作()

  本篇文章为你整理了MybatisPlus拓展——实现多数据源操作()的详细内容,包含有 MybatisPlus拓展——实现多数据源操作,希望能帮助你了解 MybatisPlus拓展——实现多数据源操作。

   mybatisplus多数据源,多数据源即需要在不同库上进行操作时所需要的配置,分为不同服务跨库进行操作、相同服务跨库进行操作。支持数据源分组 ,适用于多种场景、纯粹多库、读写分离、一主多从、混合模式。

  
适用:一般工作时候会有多个数据库,每个库对应不同的业务数据。程序如果每次数据都访问同一个数据库,该数据库压力很大访问会很慢。

  官方文档:https://baomidou.com/(建议多看看官方文档,每种功能里面都有讲解)【本文章使用的mybatisplus版本为3.5.2】

  本框架只做 切换数据源 这件核心的事情,并不限制你的具体操作,切换了数据源可以做任何CRUD。

  配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称,相同组名称的数据源会放在一个组下。

  切换数据源可以是组名,也可以是具体数据源名称。组名则切换时采用负载均衡算法切换。

  默认的数据源名称为 master ,你可以通过 spring.datasource.dynamic.primary 修改。

  方法上的注解优先于类上注解。

  DS支持继承抽象类上的DS,暂不支持继承接口上的DS。

  1、导入依赖

  

 dependency 

 

   groupId com.baomidou /groupId

   artifactId dynamic-datasource-spring-boot-starter /artifactId

   version 3.5.1 /version

   /dependency

   dependency

   groupId com.baomidou /groupId

   artifactId mybatis-plus-boot-starter /artifactId

   version 3.5.2 /version

   /dependency

  

 

  2、yaml 配置不同的数据源

  

spring:

 

   datasource:

   dynamic:

   primary: master #设置默认的数据源或者数据源组,默认值即为master

   strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源

   datasource:

   master:

   url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic

   username: root

   password: 123456

   driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置

   slave_1:

   url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic

   username: root

   password: 123456

   driver-class-name: com.mysql.jdbc.Driver

   slave_2:

   url: ENC(xxxxx) # 内置加密,使用请查看详细文档

   username: ENC(xxxxx)

   password: ENC(xxxxx)

   driver-class-name: com.mysql.jdbc.Driver

   #......省略

   #以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2

  

 

  注:多数据源配置规范

  

# 多主多从 纯粹多库(记得设置primary) 混合配置

 

  spring: spring: spring:

   datasource: datasource: datasource:

   dynamic: dynamic: dynamic:

   datasource: datasource: datasource:

   master_1: mysql: master:

   master_2: oracle: slave_1:

   slave_1: sqlserver: slave_2:

   slave_2: postgresql: oracle_1:

   slave_3: h2: oracle_2:

  

 

  3、使用 @DS 切换数据源。

  @DS 可以注解在方法上或类上,同时存在就近原则 方法上注解 优先于 类上注解。

  

@Service

 

  @DS("slave")

  public class UserServiceImpl implements UserService {

   @Autowired

   private JdbcTemplate jdbcTemplate;

   public List selectAll() {

   return jdbcTemplate.queryForList("select * from user");

   @Override

   @DS("slave_1")

   public List selectByCondition() {

   return jdbcTemplate.queryForList("select * from user where age 10");

  

 

  
本文来自,作者:不吃紫菜,遵循CC 4.0 BY-SA版权协议,

  转载请附上原文出处链接:https:///buchizicai/p/16607707.html及本声明;

  本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  以上就是MybatisPlus拓展——实现多数据源操作()的详细内容,想要了解更多 MybatisPlus拓展——实现多数据源操作的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: