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是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。但我们不能指望工具能一劳永逸的解决所有问题,有些问题还是需要特殊处理的,但需要特殊处理的部分对绝大多数的系统,应该是很少的。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值