AppBoxFuture: 集成第三方Sql數據庫

  框架設計之初是不準備支持第三方數據庫的,但最近幾個朋友都提到需要將舊的基於傳統Sql數據庫的應用遷移到框架內,主要是考慮到一方面目前框架內置的分佈式數據庫尚未完善,另一方面是希望能逐步迭代舊應用替換傳統數據庫。因此作者還是決定支持第三方數據庫,下面介紹如何集成第三方數據庫,並將實體模型映射存儲至其中。

一、創建DataStore

  DataStore主要保存數據庫的配置(連接)信息,通過IDE主菜單->DataStore->NewDataStore創建,創建後需要設置相應的連接信息(如下圖所示),另如果是集羣部署必須確保集羣每一個節點都能正常連接到數據庫。

目前僅實現了Postgresql的支持

二、創建EntityModel

  現在新建EntityModel時必須選擇對應的存儲源,"Default"是框架內置的數據庫,其他名稱則是對應的第三方數據庫。創建完實體模型後打開設計器,在"Members"面板點擊"Add"按鈕可添加實體成員(對應數據庫表字段),如下圖所示:

  根據不同的存儲源,實體模型設計器的選項面板會呈現不同的設置選項,Sql數據庫可設置主鍵及索引,如下圖所示:

  設置完並"保存"及"發佈"後,服務端會自動連接數據庫創建相應的表結構。另外DbFirst模式尚未實現,實現後可反向從現有數據庫生成實體模型。

三、創建ServiceModel測試ORM

  上述操作完成後創建測試用的服務模型,如下圖所示編寫兩個服務方法,一個簡單併發插入實體,一個分頁查詢數據。

  鼠標定位相應的服務方法後點擊"Invoke"按鈕可調用服務方法進行測試,簡單併發插入實體及簡單分頁查詢的結果分別如下圖所示:

服務模型Invoke與Debug的區別:
Invoke需要保存併發布後調用,使用Release選項編譯;
Debug不需要保存併發布,使用Debug選項編譯,服務端有相應的Debug進程處理調試過程。

演示視頻

四、本篇小結

  第三方數據庫的支持目前只是搭了個架子,ORM部分的很多功能如更新、導航屬性、複雜查詢等都未實現,框架的前端工程及後端工程的源碼已經遷到gitlab上,暫採用贊助的方式開放,如果您對項目感興趣可通過下載GitHub上的運行時安裝測試,然後再決定是否加入贊助者來共同推進這個項目。另一邊碼代碼一邊碼文實屬不易,作者需要您的支持請您多多點贊推薦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章