代码之家  ›  专栏  ›  技术社区  ›  banan3'14

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

  •  3
  • banan3'14  · 技术社区  · 6 年前

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

    Spring框架的优点在于它不试图解决已经解决的问题。它所做的一切就是提供与提供优秀解决方案的框架的良好集成。

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

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

    MyBatis是一个一流的持久性框架,支持定制SQL、存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及手动设置参数和检索结果。MyBatis可以使用简单的XML或注释进行配置,并将原语、接口和javapojo(普通的旧Java对象)映射到数据库记录。

    所以我猜对象映射必须更接近数据库、SQL、存储过程等。我不知道它是否可以应用于NoSQL数据库。然而,ORM只涉及关系数据库。

    奥姆 真的不同于 还是同义词?有什么区别?

    2 回复  |  直到 6 年前
        1
  •  2
  •   pirho    6 年前

    所以我猜对象映射必须更接近数据库, 到NoSQL数据库。然而,ORM只涉及关系数据库。

    是的,说到越冬和越冬的区别。 Here

    ORM真的与对象映射不同吗?还是同义词?有什么区别?

    关于“对象映射”这个术语:它还可以表示其他一些与数据库没有任何关系的事物。例如,Jackson可能使用objectmapper将Json数据映射到一些javapojo。

    我倾向于谈论(和听到)与ORM有关的事情 @Entity & JPA 实现非常高级/抽象的东西。

    但不是说我不是那个意思 对象映射 但是,应该这样使用 this 可能也是有趣的读物。

        2
  •  1
  •   Roman-Stop RU aggression in UA    6 年前

    冬眠的主要区别(或者更广泛地说是 JPA 实施)和MyBatis是重点。

    日本邮政

    在mybatis中,最主要的是SQL查询。定义查询以及将查询结果映射到对象的方法。您创建的查询是纯SQL,即它是根据数据库表和表列定义的。如果完全控制了这个过程,就没有为您生成查询的高级API(可用的javaapi与JPA queryapi不同,因为它处理查询更像是处理字符串模板,直接处理SQL,JPA关注对象及其关系)。

    JPA允许使用本机查询,因此除了纯处理实体之外,JPA还可以类似mybatis的风格使用,而mybatis不允许按实体进行查询。

    ORM Object Mapping 这实际上是定义的问题。如果你看看ORM的定义和描述 wikipedia 你可以看到mybatis是一种ORM。 对象映射 这不是一个广泛传播的术语,很难说教程的作者真正的意思。