在学校学习Java后,我对DAO模式非常熟悉(Data access object)。然而在工作中我使用.NET。在.NET中经常谈论DAL(Data Access Layer)。对我来说他们的目的看起来很相似。所以问题是DAO和DAL基本上是一样的东西? DAL这个术语是否只是用来弥补Data Access Objects?DAO和DAL有什么区别?
36
A
回答
57
数据访问层(DAL)是存在于业务逻辑层和持久性/存储层之间的系统层。 DAL可能是单个类,也可能是由多个数据访问对象(DAO)组成的。它可能在业务层的顶层与之交谈,隐藏了数据访问逻辑的复杂性。它可能是第三方的对象关系映射工具(ORM),如Hibernate。
DAL是一个体系结构术语,DAO是一个设计细节。
+4
假设我有一个名为DAO的接口,它有一个getCustomer()方法。该接口由SqlServerDAO-class实现。当调用getCustomer()时,SqlServerDAO从DB获取数据,创建并返回Customer对象。在这种情况下,DAL由DAO接口和SqlServerDAO类组成,对吧? – simoraman 2009-07-07 05:54:14
11
数据访问层将包含许多数据访问对象。
它的主要作用是将业务逻辑从数据库逻辑和实现中分离出来。
例如,DAL可能有一个方法,它将通过一个或多个数据访问对象从多个表,查询或存储过程中检索数据。
更改数据库结构,DAO中,存储过程,甚至数据库的类型不应该承担更改业务逻辑,这是到由DAL提供的脱钩。
相关问题
- 1. DAO和DP模式有什么区别?
- 2. DAO和Spring Beans有什么区别?
- 3. DAO和Data Mapper之间有什么区别
- 4. 有什么区别`和$(Bash中有什么区别?
- 5. DAO和休眠的区别
- 6. ==和===有什么区别?
- 7. ==和===有什么区别?
- 8. 有什么区别? :和||
- 9. ==和===有什么区别?
- 10. '=='和'==='有什么区别?
- 11. `&`和`ref`有什么区别?
- 12. 有什么区别:。!和:r!?
- 13. | 0和~~有什么区别?
- 14. Appender和〜有什么区别?
- 15. xtype和别名有什么区别?
- 16. 有什么区别
- 17. 有什么区别
- 18. 有什么区别?
- 19. 有什么区别?
- 20. 有什么区别?
- 21. 有什么区别
- 22. 有什么区别?
- 23. 有什么区别?
- 24. 有什么区别
- 25. 有什么区别
- 26. Microsoft.AspNet.WebApi.OData和Microsoft.Data.OData和Microsoft.AspNet.OData有什么区别?
- 27. Viterbi CYK和Probabilistic CYK算法有什么区别,有什么区别吗?
- 28. 存储库模式和DAL没有存储库模式的DAL中的区别?
- 29. ADO和DAO之间的区别
- 30. Erlang的Ports和RPC有什么区别?
我一直认为DAL是数据抽象层 – davidsleeps 2009-07-06 11:33:43