ORM 是什么

对象关系映射(ORM)模式是一种为了解决面向对象关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

对象关系映射(Object Relational Mapping,简称 ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。

ORM 是什么

ORM 提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得 ORM 中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。Java 典型的 ORM 中间件有:Hibernate,ibatis,speedframework。

ORM 的方法论基于三个核心原则:

简单:以最基本的形式建模数据。传达性:数据库结构被任何人都能理解的语言文档化。精确性:基于数据模型创建正确标准化了的结构。

ORM 解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。

ORM 技术特点

1.提高了开发效率。由于 ORM 可以自动对 Entity 对象与数据库中的 Table 进行字段与属性的映射,所以我们实际可能已经不需要一个专用的、庞大的数据访问层。

2.ORM 提供了对数据库的映射,不用 sql 直接编码,能够像操作对象一样从数据库获取数据。

ORM 的优缺点

ORM 的缺点是会牺牲程序的执行效率和会固定思维模式。
从系统结构上来看,采用 ORM 的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM 是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。

在我们开发系统时,一般都有性能问题。性能问题主要产生在算法不正确和与数据库不正确的使用上。ORM 所生成的代码一般不太可能写出很高效的算法,在数据库应用上更有可能会被误用,主要体现在对持久对象的提取和和数据的加工处理上,如果用上了 ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进行过滤和加工处理,这样就容易产生性能问题。

在对对象做持久化时,ORM 一般会持久化所有的属性,有时,这是不希望的。但 ORM 是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。但我们不能指望工具能一劳永逸的解决所有问题,有些问题还是需要特殊处理的,但需要特殊处理的部分对绝大多数的系统,应该是很少的。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年11月12日 下午8:17
下一篇 2023年11月12日 下午8:19

相关推荐

  • MyISAM是什么

    MyISAM是默认存储引擎(Mysql5.1前)。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 5.1不支持ISAM)。 每个MyISAM在磁盘上存储成三个文件,每一个文件的名字均以表的名字开始,扩展名指出文件类型。 MyISAM 是默认存储引擎(Mysql5.1 前)。它基于更老的 ISAM 代码,但有很多有用的扩展。(注意 MySQL …

    2023年12月3日
    1900
  • InnoDB是什么

    InnoDB是MySQL的数据库引擎之一,为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务功能,类似于PostgreSQL。 InnoDB 是 MySQL 的数据库引擎之一,现为 MySQL 的默认存储引擎,为 MySQL AB 发布 binary …

    2023年12月3日
    2100
  • 喝多了和同事睡了好尴尬

    对于同事之间的关系来说,仅存于同事比较好,如果接触比较深,喝醉后不小心发生关系事后会很尴尬。那么,喝多了把同事睡了以后怎么办呢?这种事情只能顺其自然,看事后两个人的发展,如果单身那还可以有后续,有对象那就保持距离,当做没发生吧! 一、喝多了和同事睡了好尴尬  和同事发生关系的确是有点尴尬,毕竟低头不见抬头见的,我觉得人是酒醉心明白的,接着醉意做点事…

    2023年11月30日
    1500
  • INT是什么

    INT是数据库中一种数据类型,同时,作为函数,INT函数指数据库中常用函数中的“向下取整函数”。常用来取一个数中的整数部分。Int是将一个数值向下取整为最接近的整数的函数。为取整函数。 INT 是数据库中一种数据类型,同时,作为函数,INT 函数指数据库中常用函数中的“向下取整函数”。常用来取一个数中的整数部分。Int 是将一个数值向下取整为最接近的整数的函…

    2023年11月30日
    2300
  • 怎么委婉的问女生有没有对象

    对于单身男女来说,很容易出现一见钟情,而如果你在人群中看上了一个女孩子,又担心她有男朋友出现尴尬的场景是不是很难收场呢?那么,怎么委婉的问女生有没有对象?一起来看看吧! 一、怎么委婉的问女生有没有对象 如果你想要和这个女孩子在一起; 首先,你可以先和对方成为普通朋友,这是能够在一起的基础; 在相互是朋友的基础上,看她发的朋友圈动态,微博等等,可以让自己有一个…

    2023年11月30日
    1600
  • 医学数据库是什么

    医学数据库技术的引入, 能够极大程度的节省医学数据存储的空间、更好的保护患者的隐私、进一步实现的各不同单位间的资源共享、更细致的整合互联网的各种医学资料以及更加快捷的检索各种信息, 从而给医学工作者带来极大的便利。 在计算机中,数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。而当数据库运用到医院系统中时, 既能够改变传统医学文档存储方式的冗余和…

    2023年11月29日
    1600
  • hosts是什么

    Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址。 Hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“…

    2023年11月28日
    2400
  • 内存数据库是什么

    内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。 内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。 数据库简介 内存数据库抛…

    2023年11月27日
    2700
  • 技多不压身 | 产品经理需知的那些数据库基础知识

    技多不压身,无论是什么数据产品经理还是其他品类的产品经理,都需要懂点数据库知识。懂技术能让你在跟开发撕逼中多了一个资本。 随着近几年AI智能,大数据的发展,“产品经理是是否需要懂技术?”“产品经理应该对技术理解到什么程度?”诸如此类的问题又再次出现在许多人的视野中,或者说它就未曾离开过。 笔者认为,这要具体放到某个具体业务场景或者行业下去分析,例如:作为一名…

    2023年11月26日 数据分析
    300
  • 曾被「扫地出门」的那群「疯子」,这次碾压了甲骨文

    继5G和芯片技术之后,中国互联网在数据库方面实现了又一次弯道超车。 一场曲折的中美互联网巨头之间的较量,在「十一」假期期间揭晓,中国企业拿下数据库「世界杯」冠军,而这此前已被美国公司制霸9年。10月2日,在被誉为「数据库领域的世界杯」TPC-C基准测试中,蚂蚁金服自研的分布式关系数据库OceanBase创造新的世界记录,打破甲骨文(Oracle)保持9年的世…

    2023年11月26日 数据分析
    200



微信客服