如何編寫自己的數據訪問層

概述

    在二開(族庫、算量等)或者大部分管理軟件的開發中,多數系統架構是基於數據庫設計的,那麼怎麼設計數據訪問層呢?

一、設計框架

圖中分成三塊:

1、左邊的xxxServices爲app公開訪問數據接口;

2、中間紅色部分爲底層操作數據庫接口,通過依賴注入的方式給xxxServices使用;

3、xxx DAL爲底層操作數據庫接口的具體實現,可能是SQL Server的實現,可能是用於程序開發的的Fake數據提供的實現,也可能是阿里雲、騰訊雲等雲服務器的數據訪問的實現等;

二、導出DAL代碼

    1、使用“PowerDesigner”設計數據表和它們之間的關係;

    2、使用“PowerDesigner”導出SQL腳本,比如SQL Server腳本,在SQL Server 數據庫管理工具中運行即可把所有表都創建出來;

    3、使用“動軟代碼生成器”連接數據庫,導出Model、DAL和DLL層代碼,它的腳本挺有意思的,在<# ...  #>間直接寫C#代碼。軟件本身提供了默認腳本,可使用直接導出代碼看看效果;

    4、測試、使用。默認腳本一般不會符合自己要求,可根據導出代碼修改腳本。

二、代碼實現

三、總結

    關於數據訪問層,一些第三方工具完全可以實現快速搭建,比如EF、Nhibernate等等,大家可嘗試下。自己設計、實現架構意在更加深刻理解其設計理念,使用第三方工具可能會更快、更穩健,畢竟數據訪問層的設計邏輯可以固化了,不過筆者沒用過。。

   上述系統設計詳解見“Microsoft .NET企業級應用架構設計”一書;

    對於一些簡單的應用場景是否需要這麼複雜的設計,比如,程序只需要訪問數據庫中一張表、三兩字段即可,你讓我搞這麼大堆代碼,是否合適?

    本人的看法是:怎麼簡單怎麼來。不過,在多數情況,碼代碼是枯燥了,if else寫到吐、Ctrl + C/V把鍵盤都按褪色了 - -#,那麼何不找點有意思的事情做做,比如架構設計與實現?

 

下載地址:https://download.csdn.net/download/w051108/14021892

示例代碼實現了SQLite數據庫的操作,也可在 757293457 二開的羣中下載,書也有。

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