Orm 对象关系映射器是圣杯吗?

Orm 对象关系映射器是圣杯吗?,orm,Orm,它们似乎很复杂,没有必要。我在工作或家庭中构建的应用程序从未使用过任何ORM,其中许多甚至都不是面向对象的。当它们有用时,大小是否取决于它们。当应用程序有用时,如何确定应用程序的大小 > P>你不需要O/RM,但是你也不需要像C或C++那样的高级编程语言,你可以用汇编来编写你的应用程序。那是过去的好日子;-) > P>你不需要O/RM,但是你也不需要像C或C++那样的高级编程语言,你可以用汇编来编写你的应用程序。那是过去的好日子;-) 没有银弹。我相信你一定听过很多次了。但这是真的。ORM很有用

它们似乎很复杂,没有必要。我在工作或家庭中构建的应用程序从未使用过任何ORM,其中许多甚至都不是面向对象的。当它们有用时,大小是否取决于它们。当应用程序有用时,如何确定应用程序的大小

> P>你不需要O/RM,但是你也不需要像C或C++那样的高级编程语言,你可以用汇编来编写你的应用程序。那是过去的好日子;-)

> P>你不需要O/RM,但是你也不需要像C或C++那样的高级编程语言,你可以用汇编来编写你的应用程序。那是过去的好日子;-)

没有银弹。我相信你一定听过很多次了。但这是真的。ORM很有用,因为。

ORM允许您用编程语言思考或编程数据库。

没有灵丹妙药。我相信你一定听过很多次了。但这是真的。ORM很有用,因为。

ORM允许您用编程语言思考或编程数据库。

ORM确实比直接运行SQL查询有明显的优势:

  • 保存/更新/删除整个对象图
  • 检查过时状态的实体版本控制
  • 更好的代码维护和编译时检查(SQL查询是神奇的字符串)
  • 可以从对象模型生成数据库架构
但是,它们确实有一些缺点:

  • 设置需要相当长的时间
  • 映射必须保持最新
  • 即使它将表映射到对象,您仍然需要了解SQL
  • 比直接SQL慢(但仅在执行批量操作时明显)

总的来说,在我看来,学习和使用ORM的好处远远大于它的缺点。

ORM确实比直接运行SQL查询有明显的优势:

  • 保存/更新/删除整个对象图
  • 检查过时状态的实体版本控制
  • 更好的代码维护和编译时检查(SQL查询是神奇的字符串)
  • 可以从对象模型生成数据库架构
但是,它们确实有一些缺点:

  • 设置需要相当长的时间
  • 映射必须保持最新
  • 即使它将表映射到对象,您仍然需要了解SQL
  • 比直接SQL慢(但仅在执行批量操作时明显)
总的来说,在我看来,学习和使用ORM的好处远远大于它的缺点。

就像,ORM不是万能的

如果您有一个非常复杂的(面向对象的)域模型,那么最好使用一个类似于.

的模型,ORM并不是一个灵丹妙药


如果您有一个非常复杂的(面向对象的)域模型,那么最好使用ORM映射器。ORM映射器是当今与RDBMS通信的方式。但您并不需要在每个应用程序中都使用RDBMS。有几种NoSQL解决方案,它们可能更适合使用


但也有我不喜欢ORM的用例:报告批处理:这是一个关于性能的问题,也是一个查询复杂性的问题。在这种情况下,使用存储过程可能更合适。

ORM映射器是目前与RDBMS通信的方式。但您并不需要在每个应用程序中都使用RDBMS。有几种NoSQL解决方案,它们可能更适合使用


但也有我不喜欢ORM的用例:报告批处理:这是一个关于性能的问题,也是一个查询复杂性的问题。在这种情况下,可能更适合使用存储过程。

对此的任何回答都是主观的,因此这确实应该标记为社区wiki问题。关于此主题已经有问题了。请搜索。软件开发目标是什么?不要这样想,这是非常主观的。对此的任何答案都是主观的,因此这确实应该标记为一个社区维基问题。已经有关于这个主题的问题了。请搜索。软件开发目标是什么?不要这样想,这是非常主观的。是的,这是最好的部分。一切都只是简单的物体。没有更多的sql字符串…是的,这是最好的部分。一切都只是简单的物体。不再有sql字符串。。