ORM的概念,ORM到底是什么
⼀、ORM简介
对象关系映射(Object Relational Mapping,简称ORM)模式是⼀种为了解决⾯向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使⽤描述对象和数据库之间映射的元数据,将程序中的对象⾃动持久化到关系数据库中。那么,到底如何实现持久化呢?⼀种简单的⽅案是采⽤硬编码⽅式,为每⼀种可能的数据库访问操作提供单独的⽅法。
这种⽅案存在以下不⾜:
1.持久化层缺乏弹性。⼀旦出现业务需求的变更,就必须修改持久化层的接⼝
2.持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发⽣变化,毒药修改持久化曾的相关程序代码,增加了软件的维护难度。
ORM提供了实现持久化层的另⼀种模式,它采⽤映射元数据来描述对象关系的映射,使得ORM中间件能在任何⼀个应⽤的业务逻辑层和数据库层之间充当桥梁。Java典型的ORM中间件有:Hibernate,ibatis,speedframework。
ORM的⽅法论基于三个核⼼原则:
  · 简单:以最基本的形式建模数据。
  · 传达性:数据库结构被任何⼈都能理解的语⾔⽂档化。
  · 精确性:基于数据模型创建正确标准化了的结构。
⼆、ORM的概念
让我们从O/R开始。字母O起源于"对象"(Object),⽽R则来⾃于"关系"(Relational)。⼏乎所有的程序⾥⾯,都存在对象和关系数据库。在业务逻辑层和⽤户界⾯层中,我们是⾯向对象的。当对象信息发⽣变化的时候,我们需要把对象的信息保存在关系数据库中。
当你开发⼀个应⽤程序的时候(不使⽤O/R Mapping),你可能会写不少数据访问层的代码,⽤来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的⽅法来读取对象数据,改变状态对象等等任务。⽽这些代码写起来总是重复的。
ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是建⽴在概念模型的基础上的。域模型是⾯向对象的,⽽关系模型是⾯向关系的。⼀般情况下,⼀个持久化类和⼀个表对应,类的每个实例对应表中的⼀条记录,类的每个属性对应表的每个字段。
程序员到底是干什么的
ORM技术特点:
1.提⾼了开发效率。由于ORM可以⾃动对Entity对象与数据库中的Table进⾏字段与属性的映射,所以我们实际可能已经不需要⼀个专⽤的、庞⼤的数据访问层。
2.ORM提供了对数据库的映射,不⽤sql直接编码,能够像操作对象⼀样从数据库获取数据。
三、ORM的优缺点
ORM的缺点是会牺牲程序的执⾏效率和会固定思维模式。
从系统结构上来看,采⽤ORM的系统⼀般都是多层系统,系统的层次多了,效率就会降低。ORM是⼀种完全的⾯向对象的做法,⽽⾯向对象的做法也会对性能产⽣⼀定的影响。
在我们开发系统时,⼀般都有性能问题。性能问题主要产⽣在算法不正确和与数据库不正确的使⽤上。ORM所⽣成的代码⼀般不太可能写出很⾼效的算法,在数据库应⽤上更有可能会被误⽤,主要体现在对持久对象的提取和和数据的加⼯处理上,如果⽤上了ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进⾏过滤和加⼯处理,这样就容易产⽣性能问题。
在对对象做持久化时,ORM⼀般会持久化所有的属性,有时,这是不希望的。
但ORM是⼀种⼯具,⼯具确实能解决⼀些重复,简单的劳动。这是不可否认的。但我们不能指望⼯具能
⼀劳永逸的解决所有问题,有些问题还是需要特殊处理的,但需要特殊处理的部分对绝⼤多数的系统,应该是很少的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。