日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Mybatis-plus配置多數據源

作者:wl_Honest 更新時間: 2022-10-14 編程語言

前言

最近項目中需要查詢不同的數據庫的表,恰好Mybatis-plus支持多數據源,特此記錄。

官方地址:文檔-documentation

特性

  • 支持?數據源分組?,適用于多種場景 純粹多庫 讀寫分離 一主多從 混合模式。
  • 支持數據庫敏感配置信息?加密?ENC()。
  • 支持每個數據庫獨立初始化表結構schema和數據庫database。
  • 支持無數據源啟動,支持懶加載數據源(需要的時候再創建連接)。
  • 支持?自定義注解?,需繼承DS(3.2.0+)。
  • 提供并簡化對Druid,HikariCp,BeeCp,Dbcp2的快速集成。
  • 提供對Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等組件的集成方案。
  • 提供?自定義數據源來源?方案(如全從數據庫加載)。
  • 提供項目啟動后?動態增加移除數據源?方案。
  • 提供Mybatis環境下的?純讀寫分離?方案。
  • 提供使用?spel動態參數?解析數據源方案。內置spel,session,header,支持自定義。
  • 支持?多層數據源嵌套切換?。(ServiceA >>> ServiceB >>> ServiceC)。
  • 提供 **基于seata的分布式事務方案。
  • 提供?本地多數據源事務方案。

使用方法

1.引入依賴:

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

2.配置數據源

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

3.使用?@DS?切換數據源

@DS?可以注解在方法上或類上,同時存在就近原則 方法上注解 優先于 類上注解

注解 結果
沒有@DS 默認數據源
@DS("dsName") dsName可以為組名也可以為具體某個庫的名稱

代碼:

package com.wl.demo.service.impl;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wl.demo.entity.User;
import com.wl.demo.service.UserService;
import com.wl.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

/**
* @author 13058
* @description 針對表【tb_user】的數據庫操作Service實現
* @createDate 2022-07-22 21:11:28
*/
@Service
@DS("slave_1")
public class UserServiceImpl extends ServiceImpl<UserMapper, User>
    implements UserService{

}




?

原文鏈接:https://blog.csdn.net/wl_Honest/article/details/125940474

欄目分類
最近更新