DAO 和 Data Mapper 有啥区别

Posted

技术标签:

【中文标题】DAO 和 Data Mapper 有啥区别【英文标题】:What's the difference between DAO and Data MapperDAO 和 Data Mapper 有什么区别 【发布时间】:2010-10-04 06:21:32 【问题描述】:

DAO 模式和 Data Mapper 模式有区别吗? DAO 只是做 Data Mapper 的一种吗?

【问题讨论】:

你能不能也标记一下这个“模式”? 【参考方案1】:

我实际上不会将 DAO 称为“模式”。在我看来,DAO 几乎就是它的本质——一个“数据访问对象”,它封装了访问持久数据存储的细节,一般来说与数据库无关:

interface IBlogDaoService

    Blog GetBlog(long id);
    void SaveBlog(Blog blog);

很明显,实现可以使用 DB(在这种情况下使用 Data Mapper 非常合乎逻辑)或简单的 XML 文件存储机制。

另一方面,Data Mapper 更像是一种模式,它定义了一个层,负责将内存中的对象图转换为关系结构。

【讨论】:

以上是关于DAO 和 Data Mapper 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

dao层异常,mapper

POJO和DAO有啥区别

DAO 和存储库模式有啥区别?

工厂设计模式和DAO设计模式有啥区别

springboot中@Mapper和@Repository的区别

mybatis dao用@Param传参, 如果有多个参数,在mapper里面所有出现的参数