关于ORM

转载 2007年09月29日 19:23:00
一、ORM简介
   对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。这种方案存在以下不足:
    1.持久化层缺乏弹性。一旦出现业务需求的变更,就必须修改持久化层的接口
    2.持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发生变化,毒药修改持久化曾的相关程序代码,增加了软件的维护难度
 
    ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据

库层之间充当桥梁。Java典型的ORM中间件有:Hibernate,ibatis,loonframework-db。

    ORM的方法论基于三个核心原则:
  · 简单。以最基本的形式建模数据。
  · 传达性。数据库结构被任何人都能理解的语言文档化。
  · 精确性。基于数据模型创建正确标准化了的结构。
 
二、ORM的概念
   ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关

系的。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。
   ORM技术特点:
     1.提高了开发效率。由于ORM可以自动对Entity对象与数据库中的Table进行字段与属性的映射,所以我们实际可能已经不需要一个专用的

、庞大的数据访问层。
     2.ORM提供了对数据库的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据。
 
三、ORM的优缺点
这是我从别人的blog上copy过来的,讲的非常贴切。
ORM的缺点是会牺牲程序的执行效率和会固定思维模式。
从系统结构上来看,采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM是一种完全的面向对象的做法,而面向对象的做法

也会对性能产生一定的影响。
在我们开发系统时,一般都有性能问题。性能问题主要产生在算法不正确和与数据库不正确的使用上。ORM所生成的代码一般不太可能写出很高

效的算法,在数据库应用上更有可能会被误用,主要体现在对持久对象的提取和和数据的加工处理上,如果用上了ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进行过滤和加工处理,这样就容易产生性能问题。
在对对象做持久化时,ORM一般会持久化所有的属性,有时,这是不希望的。
但ORM是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。但我们不能指望工具能一劳永逸的解决所有问题,有些问题还是需要特殊处理的,但需要特殊处理的部分对绝大多数的系统,应该是很少的。
 

orm优缺点

首先简单的介绍下ORM关系对象映射的概念。虽然NOSQL现在在迅速崛起,但大多数人仍然在使用稳定的关系型数据库,我们将数据组织成记录存储在关系数据库中,每一行代表一条记录。现代编程中,面向对象技术应用...
  • feipeixuan
  • feipeixuan
  • 2014年04月27日 23:17
  • 1165

JAVA 开发平台的技术和框架(四)三、ORM :JPA

Java Persistence API 以下内容来自:http://article.yeeyan.org/view/213582/180283  Java Persistence API是Jav...
  • liushuicike
  • liushuicike
  • 2015年03月23日 20:08
  • 576

Hibernate核心思想—ORM机制(一)

hibernate是一个采用ORM(Object/Relation Mapping对象关系映射)机制持久层的开源框架     其主要核心思想是面向对象,而非面向过程,而这个面向对象则主要通过ORM实...
  • wanghuan203
  • wanghuan203
  • 2012年05月14日 21:45
  • 16896

ORM思想解析

ORM 对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换...
  • u010028869
  • u010028869
  • 2015年07月28日 00:58
  • 4266

最近面试 整理了一些题目 小伙伴需要的拿走不谢

1、什么是ORM? 答:对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术;简单的说,ORM是通过...
  • Amber228
  • Amber228
  • 2016年12月02日 16:08
  • 261

python 对ACCESS数据库操作封装模块

python 对ACCESS数据库操作封装模块
  • adengou
  • adengou
  • 2016年01月04日 02:55
  • 1373

MyBatis 灵活的ORM框架

MyBatis     灵活的ORM框架 理解ORM的概念 掌握MyBatis框架的构建 了解MyBatis的相关配置 掌握多表映射技术 掌握动态SQL语句处理 ...
  • Ares2016
  • Ares2016
  • 2016年12月18日 18:23
  • 808

介绍几种ORM框架

ORM(object relation mapping) 对象关系映射关系 ,面向对象的对象模型和关系型数据之间的相互转换。基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想状态下...
  • changyinling520
  • changyinling520
  • 2017年02月24日 22:44
  • 5722

另一个ORM——MyBatis(三)

上篇博客简单介绍了mybatis如何工作的,和对第一篇博客的实例简单讲解。本篇博客介绍实际开发中如何使用mybatis的,介绍两种开发方式:1、原始dao开发方法。2、mapper代理开发方法。 一...
  • u011458469
  • u011458469
  • 2016年04月30日 09:56
  • 551

ORM进阶之 ORM简介

1.什么是ORM     ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2015年08月07日 20:22
  • 11826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于ORM
举报原因:
原因补充:

(最多只允许输入30个字)