gpt4 book ai didi

java - ORM 和对象映射之间的区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:34 26 4
gpt4 key购买 nike

在 Spring Boot 教程网站上,我阅读了以下内容:

Great thing about Spring Framework is that it does not try to solve problems which are already solved. All that it does is to provide a great integration with frameworks which provide great solutions.

  • Hibernate for ORM
  • iBatis for Object Mapping

Hibernate 是这样解释它的目的的:

Hibernate ORM enables developers to more easily write applications whose data outlives the application process. As an Object/Relational Mapping (ORM) framework, Hibernate is concerned with data persistence as it applies to relational databases (via JDBC).

除了 iBatis 改名为 MyBatis 外,MyBatis 提供的解决方案似乎与 ORM 方法不同。在他们的 introduction page ,MyBatis 的创建者写道:

MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.

所以我的猜测是Object Mapping一定是更接近于数据库,SQL,存储过程之类的。不知道能不能应用到NoSQL数据库上。而 ORM 仅涉及关系数据库。

ORM 真的与Object Mapping 不同还是它们是同义词?有什么区别?

最佳答案

So my guess is that Object Mapping must be closer to the database, SQL, stored procedures and the like. I don't know if it can be applied to NoSQL databases. Whereas, ORM concerns only relational databases.

是的,说到mybatis和hibernate的区别。 Here是一个很好的解释,可以很好地阐明您的情况。

Is ORM really different from Object Mapping or are they synonyms? What is the difference?

关于术语“对象映射”:它还可以指一些其他不一定与数据库有任何关系的东西。例如,Jackson 可能会使用对象映射器将 Json 数据映射到某些 java POJO。

当 ORM 与 @EntityJPA 实现相关时,我倾向于谈论(和听到)如此高层次/抽象的东西。

另一方面,对象映射 - 至少在 Java 中 - 可以表示将任意数据映射到对象、将对象映射到另一个对象或将对象映射到任意数据(如数据库表中的一行)的任何事物。

但我并不是说应该以这种方式使用术语对象映射,但是this也可能是有趣的阅读。

关于java - ORM 和对象映射之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52459537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com