ORM和ActiveRecord有什么区别?

我怎么看概念感觉这两个都很相似啊,都是把数据库里面的数据转换成对象方便操作。请问他们具体区别在哪?

阅读 6.3k
5 个回答

ActiveRecord 是一种模式,Rails 只是一种实现,Java 中你可以参考ObjectiveSQL

ActiveRecord 就是一种 ORM 啊,ORM 是抽象概念(Object Relational Mapping),而 ActiveRecord 是 Ruby 语言所写的一种实现。

勉强回答一下这个问题:
Martin Fowler在他的书中对此做了一定的区分,可以这么判定:
把模型写成了继承了一个基类的(比如叫做Record,Model之类的名称)的方式都可以称作ActiveRecord(虽然这个名称是Rails带来的);
而ORM则是ActiveRecord的一个父集,即ORM包括了ActiveRecord这种设计。

新手上路,请多包涵

上面的回答都比较片面了.
其实orm AR Datamapper 这些概念 都跟具体语言无关.

orm 的概念就是 屏蔽 具体的数据库操作, 开发只需要关心业务数据需求即可,从而产生的一种概念模型,也是依赖注入,DI等控制概念引入集成的一个对象(数据vs对象)操作集.

orm 的其中一种实现 叫ActiveRecord,另一种是DataMapper.

ActiveRecord 与 DataMapper的区别请自行了解了
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题