91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何MyBatis在使用MyCat實現多租戶功能

發布時間:2020-11-23 17:31:29 來源:億速云 閱讀:341 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關如何MyBatis在使用MyCat實現多租戶功能,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

MyCat 基本配置

首先針對多租戶配置了多個數據庫,在 MyCat 的 schema.xml 中配置了多個 schema。

如何MyBatis在使用MyCat實現多租戶功能

在 server.xml 中配置了一個用戶:

如何MyBatis在使用MyCat實現多租戶功能

后面會使用 MyCat 注解(就是注釋)方式根據不同的標識,將操作指向不同的數據庫。

過濾器識別請求匹配對應的數據庫

標識有很多種方式可以加以區分,下面使用最簡單的一種,通過不同的二級域名進行識別。二級域名和數據庫對應的信息可以通過全局庫或者公共庫進行存儲,還可以是簡單的配置文件進行配置,不過下面代碼只是為了演示,因此配置信息都是寫死在代碼中的。

假設存在以下二級域名,分別對應不同的數據庫:

  • ui1.mybatis.tk :UI1
  • ui2.mybatis.tk :UI2
  • ui3.mybatis.tk :UI3
     

通過過濾器,在用戶請求時根據請求地址設置當前請求使用的數據庫:

如何MyBatis在使用MyCat實現多租戶功能

這段代碼只是很簡單的判斷,根據不同的字符串設置不同的數據庫。使用了一個靜態的本地線程變量來存儲數據庫信息。

重寫 MyBatis 的 MappedStatement 簡單實現 MyCat 注解

使用 MyBatis 和數據庫進行操作時,所有執行的 sql 都是通過 MappedStatement 獲取的,雖然通過攔截器方式也能給 sql 添加注解,但是實現起來有點復雜。通過重寫 MappedStatement 會簡單很多,但是你也需要保證重寫的這個類能夠替代默認的類。

重寫很簡單,只需要修改原有的 getBoundSql 方法:

如何MyBatis在使用MyCat實現多租戶功能

這段代碼就是在返回 BoundSql 前,修改 sql,添加 /*!mycat:schema=數據庫*/,具體的數據庫從過濾器的靜態方法獲取,由于每一個請求都會經過過濾器(特別注意,如果是任務一類的調用,不需要經過過濾器,這種情況需要處理任務執行時數據庫的綁定,這需要根據具體業務實現),因此這里的操作一定能獲取到具體的數據庫。增加這個注解后,MyCat 執行時就會自動將數據庫的操作發送到指定的數據庫上執行,通過這種方式就實現了一種簡單的多租戶方式。

以上就是如何MyBatis在使用MyCat實現多租戶功能,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舞钢市| 石渠县| 慈溪市| 通海县| 甘洛县| 政和县| 孟连| 婺源县| 库尔勒市| 汶上县| 柞水县| 内江市| 博客| 神农架林区| 都匀市| 安康市| 保德县| 泰和县| 东源县| 武隆县| 阜康市| 满洲里市| 凤城市| 林口县| 应用必备| 怀柔区| 奇台县| 电白县| 宜城市| 扬中市| 唐海县| 云安县| 信阳市| SHOW| 确山县| 金坛市| 马边| 宿松县| 同德县| 长海县| 宣汉县|