数据访问层和数据访问对象有啥区别?

Posted

技术标签:

【中文标题】数据访问层和数据访问对象有啥区别?【英文标题】:what is the difference between data access layer and data access object?数据访问层和数据访问对象有什么区别? 【发布时间】:2011-05-08 20:59:14 【问题描述】:

我不熟悉这个概念数据访问层和数据访问对象。

我想了解数据访问层和数据访问对象的区别。请指导一下。

【问题讨论】:

【参考方案1】:

数据访问对象是一种dao模式,其中数据交互逻辑被包装(封装)在dao对象中,并且通过dao接口暴露行为。数据访问层更通用,指的是帮助访问数据库访问的一整套基础设施。数据访问层可能包含 dao、驱动类和其他数据访问细节。

【讨论】:

【参考方案2】:

DAO/Data Access Objects 是 1992 年微软数据库库的名称。最初用于访问 Jet 数据库(MS Access),后来添加了 ODBC 支持

DAL/数据访问层是位于数据库库和应用程序其余部分之间的代码的通用术语。大约在 2001 年,Sun 开始将 DAL 称为“数据访问对象”,因为……我不知道。

参考:

http://en.wikipedia.org/wiki/Data_Access_Objects

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

【讨论】:

那么在.NET Web API 中,您会说控制器(包含REST 端点)构成Data Access Layer 的一部分吗? 我通常将 WebAPI 项目划分为 REST 层,其中包括控制器和其他与 Web 相关的概念,以及与数据库通信的服务或数据访问层。这些实际上是独立的 .NET 项目,使得针对数据库测试 DAL 变得更容易,而不会妨碍 Web 内容。 -- 注意,这是基于我如何测试我的代码。您的部门可能不同。

以上是关于数据访问层和数据访问对象有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

数据访问层和业务对象

“数据服务层”和“数据访问层”有啥区别?

ExecuteSqlCommand 与 SqlQuery 有啥区别?进行数据库访问时?

服务层和数据访问对象层如何适应 Spring MVC 架构?

Oracle中的Dblink和同义词有啥区别吗

sqlserver中分表和分库有啥区别