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來好好品味一下。這次就不做預告了。我接下來會按照交流群中提問比較多的問題來更新。

 

示例代碼鏈接在這里

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM