欢迎来到 岁月小筑

ORM是什么,有什么用——ORM简介

Object-relational mapping(中文:对象关系映射)

ORM是什么

        计算机科学中的对象关系映射(ORM,O / RM和O / R映射工具)是一种使用面向对象编程语言在不兼容类型系统之间转换数据的编程技术。这实际上创建了可以在编程语言中使用的“虚拟对象数据库”。尽管有些程序员选择构建自己的ORM工具,但有可用的免费和商业软件包可以执行对象关系映射。

        在面向对象的编程中,数据管理任务作用于面向对象(OO)的对象,这些对象几乎总是非标量值。例如,地址簿条目表示单个人以及零个或多个电话号码以及零个或多个地址。这可以通过具有属性/字段的“Person对象”在面向对象的实现中建模,以保存该条目包括的每个数据项:人的姓名,电话号码列表和地址列表。电话号码列表本身包含“PhoneNumber对象”等。地址簿条目被编程语言视为单个对象(例如,它可以由包含指向对象的指针的单个变量引用)。可以将各种方法与对象相关联,例如返回优选电话号码的方法,家庭地址等。

        但是,许多流行的数据库产品(如SQL数据库管理系统(DBMS))只能存储和操作标量值,例如表中组织的整数和字符串。程序员必须将对象值转换为更简单的值组,以便在数据库中存储(并在检索时将其转换回来),或者仅在程序中使用简单的标量值。对象关系映射实现了第一种方法。

        问题的核心涉及将对象的逻辑表示转换为能够存储在数据库中的雾化形式,同时保留对象的属性及其关系,以便在需要时可以将它们作为对象重新加载。如果实现了这种存储和检索功能,那么这些对象就被认为是持久的。

使用ORM与原生SQL的对比

存储驱动程序的实现特定细节通常包含在使用的编程语言中的API中,以更简单且更符合周围代码范例的方式公开与存储介质交互的方法。

以下是一个用C#代码编写的简单示例,用于使用数据库引擎执行用SQL编写的查询。

相反,下面使用ORM API,允许编写自然地利用语言特征的代码。

        上面的案例使用了表示存储库的对象和该对象的方法。其他框架可能会将代码作为静态方法提供,如下所示,但其他方法可能根本不实现面向对象的系统。通常,范式的选择是为了使ORM最好地融入周围语言的设计原则。

通常,框架将公开一些过滤和查询功能,允许访问和修改存储库的子集。下面的代码查询ID值为“10”的数据库中的人员。

ORM的优点与缺点

         与面向对象语言和关系数据库之间的传统交换技术相比,ORM通常会减少需要编写的代码量。

ORM工具的缺点通常源于高级抽象,模糊了实现代码中实际发生的事情。 此外,严重依赖ORM软件被认为是生成设计不佳的数据库的主要因素。

最后

我实在水不动了,什么?你说我的文章太生硬,废话,机翻能不生硬吗(逃

ORM是什么

ORM是什么

 

 

点赞
  1. 乖乖瓶兒说道:

    看不懂,但是图片很漂亮

    1. littleplus littleplus说道:

      蛤,为了水文,复制的机翻,不用在意,图才是重点。

发表评论

电子邮件地址不会被公开。