精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringBoot整合Mybatis-Plus多數據源

數據庫 其他數據庫
MyBatis-Plus則是一個優秀的ORM框架,它為我們封裝了大量的數據庫操作細節,簡化了我們的開發工作,同時也提供了多數據源方案。

一、前言

隨著業務的不斷擴展和復雜度的增加,我們在開發過程中往往需要訪問多個數據庫。比如:我們可能需要同時訪問主數據庫和從數據庫,或者訪問多個獨立的數據庫來處理不同的業務邏輯。這時候,我們就需要使用多數據源來實現對多個數據庫的操作。

MyBatis-Plus則是一個優秀的ORM框架,它為我們封裝了大量的數據庫操作細節,簡化了我們的開發工作,同時也提供了多數據源方案。

  • dynamic-datasource 開源文檔付費,屬于組織參與者小鍋蓋發起的項目。
  • mybatis-mate 企業級付費授權,資料文檔免費。

今天我們以第一種方案來具體說一下怎么實現!

MyBatis-Plus多數據源官網:https://baomidou.com/pages/a61e1b/#dynamic-datasource。

二、簡單搭建測試

1、準備工作

我們先把一些使用的版本列舉一下,方便大家看!

  • Spring Boot:2.7.4
  • dynamic-datasource:3.5.1
  • mybatis-plus:3.5.1

數據庫方面這里就不演示了,我們準備好兩個mysql數據庫:

圖片

2、添加依賴

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.15</version>
</dependency>
<!-- mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

3、yml配置

spring:
  datasource:
    #使用阿里的Druid
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    dynamic:
      primary: master #設置默認的數據源或者數據源組,默認值即為master
      strict: false #嚴格匹配數據源,默認false. true未匹配到指定數據源時拋異常,false使用默認數據源
      datasource:
        master:
          url: jdbc:mysql://127.0.0.1:3306/test?serverTimeznotallow=Asia/Shanghai
          username: root
          password:
        slave_1:
          url: jdbc:mysql://127.0.0.1:3306/test1?serverTimeznotallow=Asia/Shanghai
          username: root
          password:

「補充:」

可以繼續多種模式,咱們以簡單的進行演示!

# 多主多從                      純粹多庫(記得設置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:

4、實體類

@Data
public class Test {

    @TableId
    private Integer id;
    private String name;
    private Integer age;
    private LocalDateTime time;
    private LocalDateTime createdAt;
}

5、多數據源配置Mapper

使用 @DS 切換數據源。@DS 可以注解在方法上或類上,同時存在就近原則 方法上注解 優先于 類上注解。

注解

結果

沒有@DS

默認數據源

@DS("dsName")

dsName可以為組名也可以為具體某個庫的名稱

public interface TestDbMapper extends BaseMapper<Test> {
}
@DS("slave_1")
public interface TestDb2Mapper extends BaseMapper<Test> {
}

注意:

這里@DS可以添加在service中的方法上來切換數據源,也可以像小編一樣加在Mapper接口上!

他們各有優缺點,我們需要權衡利弊進行選擇:

如果一個Service只需要使用一個數據源,或者多個Service方法都需要使用相同的數據源,則建議將@DS注解添加到Mapper接口或XML文件上;如果需要根據不同的業務場景動態切換數據源,則可以選擇在Service方法上使用@DS注解。

當然還有一種情況,一個service方法操作不同的數據源,表結構一樣的話可以使用一個mapper。

在service內部進行切換,我們看到官方注釋,「非必要不要這么使用」!

// 設置當前線程數據源 如非必要不要手動調用,調用后確保最終清除
DynamicDataSourceContextHolder.push("slave_1");
// 獲得當前線程數據源
DynamicDataSourceContextHolder.peek();
// 強制清空本地線程 防止內存泄漏,如手動調用了push可調用此方法確保清除
DynamicDataSourceContextHolder.poll();

完整代碼塊:

@Override
public Result saveTest() {
    Test test = new Test();
    test.setId(1993);
    test.setName("add方法");
    // 切換指定數據源
    DynamicDataSourceContextHolder.push("slave_1");
    testDbMapper.insert(test);
    //查看當前數據源
    log.info(DynamicDataSourceContextHolder.peek());
    //移除數據源,恢復master數據源
    DynamicDataSourceContextHolder.clear();
    testDbMapper.insert(test);
    return Result.success("222");
}

圖片

數據庫展示:

圖片

6、測試

我們還是以把@DS放在mapper類上來進行演示:

@Autowired
private TestDbMapper testDbMapper;
@Autowired
private TestDb2Mapper testDb2Mapper;
@Override
public Result saveTest() {
    Test test = new Test();
    test.setId(1994);
    test.setName("add方法");
    testDbMapper.insert(test);
    testDb2Mapper.insert(test);
    return Result.success("222");
}

圖片

數據庫正常保存到兩個庫,測試通過!

圖片


7、事務問題

在使用多數據源的同時,也帶來了一下事務問題,如果一個方法添加了@Transactional(rollbackFor = Exception.class)事務,默認查詢只會從默認庫來查詢。

這個問題是要解決的,這里小編給幾個思路大家可以試一下!

  • Spring Boot提供了一個基于Atomikos的JTA實現。
  • 可以配置多個DataSourceTransactionManager進行管理事務。

能分開系統來進行數據源的隔離,需要查詢數據可以使用feign來獲取!小編還沒在企業中使用多數據源,缺乏一下關于事務方面的分享,大家有想法或者熟悉的可以留言分享一下自己的經驗!

三、總結

希望這篇博客能夠幫助讀者更好地理解和掌握Spring Boot和MyBatis-Plus多數據源的使用方法,并應用到實際項目中去。同時,也提醒讀者在使用多數據源的時候要注意事項,比如事務管理、連接池配置等,以確保系統的穩定性和可靠性。

責任編輯:姜華 來源: 小王博客基地
相關推薦

2023-01-04 09:33:31

SpringBootMybatis

2024-10-30 10:22:17

2023-09-07 08:39:39

copy屬性數據源

2020-12-31 07:55:33

spring bootMybatis數據庫

2023-12-13 12:20:36

SpringMySQL數據源

2022-05-18 12:04:19

Mybatis數據源Spring

2025-04-14 01:00:00

Calcite電商系統MySQL

2020-06-02 07:55:31

SpringBoot多數據源

2024-12-20 16:49:15

MyBatis開發代碼

2020-03-13 14:05:14

SpringBoot+數據源Java

2020-11-24 09:56:12

數據源讀寫分離

2024-04-30 09:17:06

SpringBootMybatis動態數據源

2009-08-14 10:26:27

ibatis多數據源

2023-10-31 07:52:53

多數據源管理后端

2025-02-27 09:45:47

2025-01-09 11:21:25

2025-05-26 03:20:00

SpringMyBatis數據權限

2022-12-19 07:21:35

Hutool-db數據庫JDBC

2022-05-10 10:43:35

數據源動態切換Spring

2023-07-29 22:02:06

MyBatis數據庫配置
點贊
收藏

51CTO技術棧公眾號

日本 片 成人 在线| 亚洲人成77777| 99久久久无码国产精品免费蜜柚| 精品久久不卡| 欧美一区二区免费观在线| 日韩精品一区二区三区电影| 天天操天天干天天爽| 美女视频黄久久| 久久久久久久久久久久av| 中文字幕在线看高清电影| 国产精品色婷婷在线观看| 欧美日韩国产中文精品字幕自在自线| 天天爽天天狠久久久| 国产成人精品无码高潮| 日韩精品一二三区| 欧美精品久久久久久久免费观看| 手机看片福利视频| 国产成人aa在线观看网站站| 欧美视频一区二| 免费一级特黄特色毛片久久看| 日韩黄色影院| 91啪亚洲精品| yy111111少妇影院日韩夜片| 午夜精品久久久久久久蜜桃| 亚洲另类黄色| 欧美精品在线网站| 四虎影视1304t| 欧美三级美国一级| 日韩经典第一页| 日韩欧美色视频| 婷婷久久综合九色综合99蜜桃| 欧美性猛交xxxx黑人| 精品一区二区三区无码视频| 日韩伦理在线电影| 国产精品无码永久免费888| 精品国产一区二区三区麻豆小说 | 午夜精品久久久久久久99水蜜桃| 亚洲人成人77777线观看| 久久久久久久影视| 91在线播放网址| 国产激情美女久久久久久吹潮| 91激情在线观看| 免费在线观看一区二区三区| 国产成人综合av| 亚洲va在线观看| 99精品视频免费观看| 欧美夫妻性生活xx| 欧美毛片在线观看| 韩国亚洲精品| 久久久噜噜噜久噜久久| 久草免费新视频| 狠狠色丁香久久综合频道 | 美女91在线看| 五月婷婷欧美视频| 免费看黄在线看| 电影在线观看一区| 精品久久久免费| www.爱色av.com| 欧美日韩123区| 91精品福利视频| 成人免费xxxxx在线视频| 欧美黑人一区| 欧美日韩国产首页| 一级黄色片在线免费观看| 亚洲久草在线| 日韩欧美一区中文| 日韩无码精品一区二区| 午夜精品福利影院| 国产一区二区三区免费视频| 国产麻豆a毛片| 欧美aa国产视频| 久久理论片午夜琪琪电影网| 国产原创视频在线| 日本麻豆一区二区三区视频| 国产精品入口尤物| 91精品中文字幕| 成人性生交大片免费看中文| 久久天天狠狠| 五月香视频在线观看| 亚洲码国产岛国毛片在线| 青草青青在线视频 | 国产一区二区在线播放| 99久久精品国产成人一区二区| 国产不卡在线视频| 久久青青草原| 国产精品久久久久久福利| 亚洲国产成人精品视频| 亚洲视频在线观看一区二区三区| 国产精品亚洲一区二区在线观看| 亚洲成人网av| 91成人精品一区二区| 欧美精品99| 日韩美女福利视频| 国产剧情久久久| www国产成人| 日本三级福利片| 精精国产xxx在线视频app| 欧美日韩一区中文字幕| 国产清纯白嫩初高中在线观看性色| 日韩福利视频一区| 久久精品亚洲精品| 亚洲 欧美 日韩 在线| 久草这里只有精品视频| 九九99久久| free性欧美hd另类精品| 91久久精品日日躁夜夜躁欧美| 成人三级做爰av| 国产精品免费大片| 高清欧美性猛交xxxx| 136福利视频导航| 99久久99久久精品免费看蜜桃| 中文字幕av导航| 校园春色亚洲色图| 亚洲国产精品成人va在线观看| 国产大屁股喷水视频在线观看| 国产精品社区| 国产精品久久精品国产| 国产日产一区二区| 欧美三级资源在线| 日本黄色网址大全| 一区二区视频欧美| 成人在线免费观看视视频| 狠狠v欧美ⅴ日韩v亚洲v大胸| 一区二区三区国产精品| 亚洲精品免费一区亚洲精品免费精品一区| 亚洲va久久久噜噜噜久久| 欧美激情女人20p| 国产三级精品在线观看| 国产精品久久久久久久久果冻传媒| 国内外成人激情视频| 粉嫩的18在线观看极品精品| 乱亲女秽乱长久久久| 亚洲无码精品在线观看| 久久精品日韩一区二区三区| 成人一对一视频| 成人精品毛片| 久久久天堂国产精品女人| 99精品免费观看| 亚洲欧美日韩一区二区三区在线观看| www.com黄色片| 成人看的羞羞网站| 国产精品久久视频| 国产高清视频在线| 在线免费亚洲电影| 亚洲av熟女国产一区二区性色| 亚洲永久免费| 免费久久一级欧美特大黄| 筱崎爱全乳无删减在线观看| 精品调教chinesegay| av黄色在线看| 久久久久久久性| 亚洲精品高清无码视频| 成人黄色av| 成人免费在线视频网站| 成a人片在线观看| 日韩一区二区三区在线| 九九热这里有精品视频| 成人毛片在线观看| 1024av视频| 国产成人黄色| 国产在线观看不卡| 91麻豆免费在线视频| 欧美www视频| 国产成人精品一区二三区| 久久久综合视频| 狠狠热免费视频| 正在播放日韩欧美一页| 国产精品一区二区免费| 波多视频一区| 久久精品国产成人| 亚洲av无码乱码国产麻豆| 性欧美疯狂xxxxbbbb| av男人的天堂av| 激情都市一区二区| 久久久久久免费看| 欧美精品一区二区三区精品| 91九色单男在线观看| 黄色在线观看视频网站| 亚洲欧美日韩中文在线| 91麻豆成人精品国产| 亚洲成人在线网站| 亚洲精品国产精品国自| 国产久卡久卡久卡久卡视频精品| 国产一区二区三区小说| 成人看的视频| 国产精品一区二区三区在线观| 桃子视频成人app| 久久精品视频免费播放| 亚洲日本香蕉视频| 欧美二区三区91| 黄色一级片免费看| 一区精品在线播放| 9.1成人看片| 韩国av一区二区三区在线观看| 欧美a v在线播放| 天天综合精品| 欧美区高清在线| 成人av综合网| 国产欧美日韩专区发布| 一个人www视频在线免费观看| 色综久久综合桃花网| 五月婷中文字幕| 欧美精品在线观看播放| 久久草视频在线| 亚洲欧美日韩国产一区二区三区 | 亚洲**2019国产| 国产写真视频在线观看| 亚洲欧美在线一区二区| 亚洲a视频在线| 欧美日韩一区视频| 久久青青草视频| 一区二区三区四区在线播放| 男人天堂资源网| 久久亚洲免费视频| 精品无码av一区二区三区| 久草中文综合在线| 麻豆传传媒久久久爱| 亚洲国产精品第一区二区| 乱子伦一区二区| 青青草成人影院| 欧美主播一区二区三区美女 久久精品人| 中文字幕一区二区三区四区久久| 国产日韩精品在线| 国产精品亚洲一区二区三区在线观看| 午夜精品视频在线| 黄色羞羞视频在线观看| 久久视频免费观看| 日本中文字幕伦在线观看| 亚洲天堂男人天堂女人天堂| 青青草免费观看免费视频在线| 欧美精品一区男女天堂| www.xxx国产| 91麻豆精品国产91久久久| 在线观看免费高清视频| 在线观看一区日韩| 波多野结衣毛片| 色视频成人在线观看免| 一级片中文字幕| 精品久久中文字幕久久av| 精品在线视频免费| 亚洲高清在线视频| 日本网站免费观看| 午夜影视日本亚洲欧洲精品| 国产无遮挡又黄又爽又色| 亚洲国产欧美一区二区三区丁香婷| 欧美精品一区二区成人| 亚洲资源在线观看| 国产无精乱码一区二区三区| 黄色精品一区二区| 亚洲国产成人无码av在线| 一本一道久久a久久精品 | 欧美一区二区人人喊爽| www.色播.com| 亚洲国产精品久久久久久| 天天干,天天操,天天射| 日韩成人在线视频| 韩国精品视频| 色偷偷88888欧美精品久久久 | 8x海外华人永久免费日韩内陆视频 | 欧美 日韩精品| 视频一区视频二区在线观看| 在线观看的毛片| 国产在线麻豆精品观看| 中文字幕99页| 2024国产精品| 快灬快灬一下爽蜜桃在线观看| 国产精品久久毛片av大全日韩| 中文字幕亚洲欧美日韩| 亚洲aaa精品| 成人一级免费视频| 欧美精品久久99| 少妇精品视频一区二区| 亚洲欧美综合区自拍另类| 日本中文字幕在线看| 欧美激情手机在线视频 | 欧美激情午夜| 欧美激情videos| 欧美性xxx| 91亚洲精品一区二区| 女一区二区三区| 在线不卡日本| 日韩视频免费| 亚洲高清免费在线观看| 国产凹凸在线观看一区二区| 亚洲熟妇一区二区三区| 亚洲男同1069视频| 国产美女激情视频| 欧美一区二区精品在线| 水中色av综合| 久久久久久久精| 国产农村妇女精品一区| 亚洲午夜私人影院| 中文精品久久久久人妻不卡| 日韩免费性生活视频播放| 日本又骚又刺激的视频在线观看| 日韩在线不卡视频| 激情国产在线| 亚洲va欧美va国产综合剧情| 亚洲最大在线| 欧美这里只有精品| 美女视频黄 久久| 亚洲男女在线观看| 亚洲色图欧洲色图| 一级特黄免费视频| 亚洲国产日韩精品在线| av大片在线| 国产精品自拍视频| 伊人成综合网yiren22| 黄色成人在线免费观看| 美女精品自拍一二三四| 国产chinese中国hdxxxx| 亚洲色图一区二区三区| 中文av免费观看| 亚洲欧美日本精品| 高清在线视频不卡| 动漫3d精品一区二区三区| 国产精品99久久| 黄色aaa级片| 久久精品亚洲精品国产欧美| 国产精品99精品无码视| 91精品国产综合久久香蕉的特点| 成av人电影在线观看| 91av视频在线观看| 国产一区二区在线视频你懂的| 亚洲av首页在线| 久久精品国产久精国产爱| 99精品全国免费观看| 欧美性精品220| 三级在线视频| 全球成人中文在线| 欧美韩一区二区| 日本网站免费在线观看| 不卡的av电影在线观看| 久久视频免费看| 精品国产一区二区三区久久影院| 手机在线免费av| 国产精品日韩欧美一区二区三区| 亚洲免费二区| 黄色片子免费看| 亚洲影院在线观看| 精品人妻av一区二区三区| 蜜臀久久99精品久久久无需会员| 亚洲国产天堂| 久久精品在线免费视频| 国产高清不卡一区| 久久久久久久国产视频| 日韩精品中文字幕一区二区三区 | 黄色片一区二区三区| 高清视频欧美一级| 亚洲人成网77777色在线播放| 国产二区视频在线播放| 久久久久久久久久久99999| 在线永久看片免费的视频| 亚洲一区二区黄| 午夜精品久久久久久毛片| 日本丰满少妇黄大片在线观看| 国产一区视频网站| 国产一卡二卡在线播放| 日韩激情av在线免费观看| 香蕉视频亚洲一级| 伊人情人网综合| 国产伦精品一区二区三区视频青涩 | 国产免费播放一区二区| 制服丝袜综合网| 一区二区三区四区在线免费观看 | 日本一区二区视频在线| 一区二区视频网站| 美女av一区二区| 精品素人av| 日韩无套无码精品| 亚洲欧洲日本在线| 蜜桃91麻豆精品一二三区| 18一19gay欧美视频网站| 成人精品亚洲| 涩视频在线观看| 日本高清不卡视频| sm国产在线调教视频| 国产日韩精品推荐| 日本美女视频一区二区| 久草免费在线观看视频| 国产午夜精品全部视频播放| 国产精品成人3p一区二区三区| 妞干网在线视频观看| 国产欧美日韩三级| 国产高清在线免费| 国产91九色视频| 综合在线视频| 91久久免费视频| 日韩天堂在线观看| av有声小说一区二区三区| 精品无码av无码免费专区| 久久久99精品免费观看| www.五月天激情| 国产成人涩涩涩视频在线观看| 91精品99| 波多野在线播放| 亚洲第一男人av| 色综合久久久| 精品一卡二卡三卡| 一区二区免费看|