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 是一种工具,工具确实能解决一些反复,简单工作 。这是不可否认的 。但我们不能指望工具能一劳永逸地处理各种问题,有些问题也是需要特别处理的,但需要特别处理的部分对绝大部分的系统,应当是很少的 。
【ORM 是什么】