SmartSql使用教程(4)——多庫配置與使用
一、引言
已經幾個月沒更新了。本來上一章的預告是準備寫TypeHandler的相關特性的。但是在準備的時候。SmartSql的作者重構了一下TypeHandler,使得我一下子沒搞懂TypeHandler的原理,所以一直沒有下手來寫這一章。但最近群裡(qq群:604762592)有好幾個小夥伴在問多庫配置的問題。就先寫一下關於這個問題的東西吧。
關於多庫的場景在這裡就不多概述了,想必大家都或多或少做過此類專案。我就直接進入主題,說一下關於SmartSql下單個專案中多資料庫的配置和使用。
二、專案結構
上圖是這次專案的結構,分為Api,2個倉儲專案,一個實體專案。
在Api的專案中。原來我們只需要一個SmartSqlMapConfig。而這個專案中有3個,分別對應了3個數據庫。在Maps的資料夾中分了3資料夾,也是分別對應了3個數據庫。
倉儲分為兩個專案是想展示一下在多庫場景下倉儲的多種配置方法。
三、註冊SmartSql例項
這是Startup中關於註冊SmartSql例項的程式碼,分別註冊了3個庫的。這裡需要注意以下幾點:
1. 在多例項下,每個例項都需要對其進行別名配置。方法如上圖,使用UseAlias方法。
2. 多例項意味著多個SmartSqlMapConfig,所以同樣需要使用UseXmlConfig方法配置指定的配置檔案。
3. 在配置動態倉儲時,除了配置指定的程式集外,還需要指定倉儲使用的SmartSql例項的別名。
4. 在通用庫和使用者庫這裡,多了一個Filter的委託,使用者過濾倉儲介面。
四、多例項的使用
劃重點:
1.如果使用倉儲,那在這裡和單庫的使用沒有任何區別。因為在註冊的地方已經配置好了。
2. 如果使用SqlMap,就需要在獲取SqlMap例項的時候,使用別名來獲取了。serviceProvider.GetSmartSql("Product").SqlMapper;
3. 其他的使用與單庫沒有區別
四、結語
好了。多庫的基本配置就說到這裡。希望大家下載Demo來好好品味一下。這次就不做預告了。我接下來會按照交流群中提問比較多的問題來更新。
示例程式碼連結在這裡
&n