sm_zl_kimi 2009-01-11 16:32
浏览 427
已采纳

关于DAO 和 ORM

我觉得DAO和ORM对象关系数据库映射的作用一样啊,都把对象映射到数据库中去了.
DAO模式中调用者传入一个实体对象,DAO负责操作相应数据库
ORM也是一样的啊,那DAO和ORM区别是什么?
DAO是不是也是一直ORM?难道只有用到了反射什么的才叫ORM?

  • 写回答

4条回答 默认 最新

  • etank2011 2009-01-11 18:29
    关注

    我个人的理解是这样的:
    1.所谓DAO层一般是从系统分层结构出发来说的,即把数据存取操作到集中到DAO层,以便于维护和逻辑清晰,而且通常移植数据库的时候,如果系统合理分层了,则大部分工作将会集中在DAO层,这样比较容易操作
    2.而ORM是针对开发而言的,就像面向过程和面向对象开发一样,是一种处理问题的方式。ORM的目的是使数据操作能像操作对象那样方便(其实有时候不一定更方便,更准确地说,应该是让程序员能够运用过面向对象的思想来操作数据对象),通常ORM会做到将数据库表映射成对象,封装一些基本的数据操作,以及提供一些如级联查询和保存之类帮助开发的扩展功能。
    DAO层在实现时可以选择使用ORM框架,也可以使用直接的数据库操作,有时候因为性能要求只能直接操作数据的。
    所以我认为DAO层是软件开发演变过程中对于分层概念的产物,目的是更清晰合理的管理软件开发过程过的代码和逻辑;而ORM是对数据操作思想的一种改变,不再是面对关系数据库中的表,而是统一视作对象。(个人理解,如果有误请见谅)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突