如何编写自己的数据访问层

概述

    在二开(族库、算量等)或者大部分管理软件的开发中,多数系统架构是基于数据库设计的,那么怎么设计数据访问层呢?

一、设计框架

图中分成三块:

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 二开的群中下载,书也有。

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