ORM 和对象映射的区别?

ban*_*'14 6 java orm hibernate mybatis

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

Spring Framework 的优点在于它不会尝试解决已经解决的问题。它所做的只是提供与提供出色解决方案的框架的良好集成。

  • ORM的休眠
  • 用于对象映射的 iBatis

这就是 Hibernate 解释其目的的方式:

Hibernate ORM 使开发人员能够更轻松地编写数据超过应用程序进程的应用程序。作为对象/关系映射 (ORM) 框架,Hibernate 关注数据持久性,因为它适用于关系数据库(通过 JDBC)。

除了 iBatis 更名为 MyBatis 之外,MyBatis 提供的解决方案似乎与 ORM 方法不同。在他们的介绍页面上,MyBatis 的创建者写道:

MyBatis 是一流的持久化框架,支持自定义 SQL、存储过程和高级映射。MyBatis 消除了几乎所有的 JDBC 代码和手动设置参数和检索结果。MyBatis 可以使用简单的 XML 或注解进行配置,并将原语、Map 接口和 Java POJO(Plain Old Java Objects)映射到数据库记录。

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

ORM从真正不同的对象映射或者他们同义词?有什么不同?

pir*_*rho 2

所以我的猜测是对象映射一定更接近数据库、SQL、存储过程等。不知道是否可以应用于NoSQL数据库。而 ORM 仅涉及关系数据库。

是的,说到mybatis和hibernate的区别。是一个很好的解释,可以很好地阐明您的案例中的这种差异。

ORM 与对象映射真的不同还是它们是同义词?有什么不同?

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

@Entity当 ORM与JPA实现如此高级/抽象的东西一起使用时,我倾向于谈论(和听到)ORM 。

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

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