ORM进阶之 ORM简介

标签: orm 持久化 对象关系映射
13248人阅读 评论(11) 收藏 举报
分类:

1.什么是ORM

    ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

2.为什么会出现ORM思想

    先从项目中数据流存储形式这个角度说起.简单拿MVC这种分层模式.来说. Model作为数据承载实体. 在用户界面层和业务逻辑层之间数据实现面向对象OO形式传递. 当我们需要通过Control层分发请求把数据持久化时我们会发现.  内存中的面向对象的OO如何持久化成关系型数据中存储一条实际数据记录呢?

     面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的.  两者之间是不匹配的.而ORM作为项目中间件形式实现数据在不同场景下数据关系映射. 对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.ORM就是这样而来的.

     

3.优缺点

优势

    第一:隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来。

    第二:ORM使我们构造固化数据结构变得简单易行。在ORM年表的史前时代,我们需要将我们的对象模型转化为一条一条的SQL语句,通过直连或是DB helper在关系数据库构造我们的数据库体系。而现在,基本上所有的ORM框架都提供了通过对象模型构造关系数据库结构的功能。这,相当不错。

缺点

    第一:无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。

    第二:面向对象的查询语言(X-QL)作为一种数据库与对象之间的过渡,虽然隐藏了数据层面的业务抽象,但并不能完全的屏蔽掉数据库层的设计,并且无疑将增加学习成本.

    第三:对于复杂查询,ORM仍然力不从心。虽然可以实现,但是不值的。视图可以解决大部分calculated column,case ,group,having,order by, exists,但是查询条件(a and b and not c and (d or d))。

    世上没有驴是不吃草的(又想好又想巧,买个老驴不吃草),任何优势的背后都隐藏着缺点,这是不可避免的。问题在于,我们是否能容忍缺点。

4.常用的ORM框架

   (1Hibernate全自动需要些hql语句

   (2iBATIS半自动自己写sql语句,可操作性强,小巧

   (3EclipseLink 一个可扩展的支持JPAORM框架,供强大的缓存功能,缓存支持集群。

   (4)Apache OJB等等


从下篇文章开始,为大家介绍hibernate 

 

查看评论

ORM的优缺点

题记:今天同事提到ORM。。。。就说说它吧。。。  1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间...
  • sgear
  • sgear
  • 2012-03-29 18:07:01
  • 57331

C#基础系列:实现自己的ORM(ORM的基础概念)

ORM(O/R Mappping对象关系映射)的基础概念 在我们的系统中,存在大量的需要进行持久化存储的对象,这些对象可能是各种各样的业务单据,也可能是我们的系统配置信息等。另外一些属于内存中使用而不...
  • RonoTian
  • RonoTian
  • 2008-09-08 17:28:00
  • 14039

ORM框架

对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。 传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型...
  • zxc22436
  • zxc22436
  • 2011-10-15 09:11:31
  • 51973

ORM的理解

greenDao 是orm的一种 orm 对象关系映射 就是把关系型数据库 用对象表示出来 所以 我们就可以以面向对象的方式 来操作关系型数据库了 并且不用写sql 语句就可以...
  • hu285279904
  • hu285279904
  • 2016-12-20 21:47:38
  • 694

ORM是什么意思

因为要满足Java对象得到持久化(即保存)的需求。 ORM:(Object/Relation Mapping): 对象/关系映射 ORM的实现思想: 将关系数据库中表中的记录映射成为对象,以对象...
  • qq_27093465
  • qq_27093465
  • 2016-10-23 00:19:59
  • 6371

Spring ORM+Hibernate?Out!换 Spring Data JPA 吧!

Spring Data JPA 的目标是通过让一些必须的工作变得更简单,来极大的提高数据访问层的实现效率。通常我们只需要姐访问方法,而 Spring 给你提供自动实现。! 在一切开始之前,先举个简单的...
  • anxpp
  • anxpp
  • 2016-05-15 06:56:49
  • 38189

Farseer开源框架.net 4.0 C# <em>ORM</em>

Farseer开源框架.net 4.0 C# <em>ORM</em> 2014-04-07 上传大小:123KB Farseer开源框架.net4.0 Farseer.net原是在Qyn.Studio V5.0 框架更名而来。该框架是基于.net ...
  • 2018年04月17日 00:00

ORM进阶之Hibernate中对象的三大状态解析

可以看到对象可能会有这三种状态,临时状态(transient),持久化状态(persistent),游离状态(detached)。下边我们来分别来解释一下这三种状态。...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2015-08-18 12:16:50
  • 3377

ORM进阶之Hibernate 简介及框架搭

上一篇博客讲解了ORM思想,以及ORM的优缺点,并说了ORM有很多的实现方式,我们将以Hibernate为基础来进行讲解。         Hibernate是一个基于元数据的轻量级的ORM框架: ...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2015-08-12 20:44:41
  • 4717

介绍几种ORM框架

ORM(object relation mapping) 对象关系映射关系 ,面向对象的对象模型和关系型数据之间的相互转换。基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想状态下...
  • changyinling520
  • changyinling520
  • 2017-02-24 22:44:39
  • 12835
    个人资料
    等级:
    访问量: 43万+
    积分: 8882
    排名: 2707
    最新评论