欢迎来到天天文库
浏览记录
ID:23568100
大小:1.90 MB
页数:46页
时间:2018-11-09
《hibernate教程讲师用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Hibernate教程Hibernate教程46Hibernate教程前言1、java对象持久化技术1.1、hibernate是什么1.2、软件模型1.2.1、概念模型46Hibernate教程1.2.2、关系数据模型1.2.3、域模型1.2.4、域对象46Hibernate教程1.2.5、域对象之间的关系46Hibernate教程1.2.6、域对象的持久化概念提示:46Hibernate教程1.3、数据库访问模式1.3.1、ORM模式1.3.2、主动域对象模式46Hibernate教程1.3.3、JDO模式1.3.4、CMP模式46Hibernate
2、教程一、数据源层-O/RMapping主要介绍三层架构,如何分层?(逻辑上的分层,二个原则)数据层技术的选择:直接使用1.1、SQL/JDBC:优点:很多开发者熟悉关系数据库管理系统,理解SQL,也知道如何使用表和外键进行工作。此外,他们可以始终使用众所周知并广泛使用的DAO设计模式对业务逻辑隐藏复杂的JDBC代码和不可移植的SQL。缺点:为域中的每个类手工编写持续性代码的工作是非常可观的,特别是需要支持多种SQL方言时。这项工作通常会消耗很大一部分的开发努力。此外,当需求改变时,一个手工编码的解决方案总是需要更多的注意和维护努力。1.2、序列化:Ja
3、va有一个内建的持久化机制:序列化提供了将对象图(应用状态)写到字节流中的能力,然后它可能被持久化到文件或数据库中。持久化也被Java的远程方法调用(RMI)使用来为复杂对象传递值语义。持久化的另一种用法是在机器集群中跨节点复制应用状态。缺点:很不幸,一个相互连接的对象图在序列化之后只能被当作一个整体访问,如果不反序列化整个流就不可能从流中取出任何数据。这样,结果字节流肯定会被认为不适合进行任意的检索或聚合。甚至不可能独立地访问或更新一个单独的对象或子图。非常明显,因为当前特定的技术,序列化不适合于作为高并发性的Web和企业应用的持久化机制。在特定的环
4、境中它被作为桌面应用的适当的持久化机制。46Hibernate教程1.3EJBentitybeansEJB1.1实体Bean在实践中彻底地失败了。EJB规范的设计缺陷阻碍了Bean管理的持续性(BMP)实体Bean有效地执行。在EJB1.1许多明显的缺陷被纠正之后,一个边缘的稍微可接受的解决方案是容器管理的持续性(CMP)。然而,CMP并不能表示一种对象-关系不匹配的解决方案。CMP缺点:¨CMP实体Bean的粒度既太粗又太细:CMPBean与关系模型中的表是按照一对一的方式定义的。这样,它们的粒度过粗,不能够完全利用Java丰富的类型。¨虽然EJB可
5、以利用继承实现,但实体Bean并不支持多态的关联和查询¨不管EJB规范所宣称的目标,实体Bean实际上是不可移植的。CMP引擎的性能因厂商而异,并且映射元数据也是高度特定于厂商的。¨实体Bean不可序列化。我们发现当我们需要将数据传输到远程客户层时,我们必须定义额外的数据传输对象(DTO,也被称作值对象)¨实体Bean必须依赖于EJB容器测试困难。JDO、Object-orienteddatabasesystems大多数面向对象的数据库系统对ODMG标准都提供了许多程度的支持,但据我们所知,还没有完全的实现。此外,在规范发布以后的很多年,甚至到了3.0
6、版,还是感觉不太成熟,并且缺乏很多有用的特征,特别是基于Java环境的。ODMG也不再活跃。最近,Java数据对象(JDO)规范(发表于2002年4月)揭开了新的可能性。JDO由面向对象数据库团体的成员驱动,除了对现有的ODMG的支持之外,面向对象的数据库产品现在还经常将其作为主要的API采用。JDO的优点在于它很简单。开发人员使用Java语言持久存储对象实例并从存储器检索实例。处理逻辑、同步和故障转移等均被透明地处理。开发人员无需使用SQL或Java语言提供的不便的序列化机制,只使用POJO(无格式普通Java对象)即可,利用JDO接口将对象引用传递
7、到存储器中并从存储器检索对象引用。1.4、O/RMapping1.4.1什么是O/RMapping?它有什么优点?简单地说,对象-关系映射就是Java应用中的对象到关系数据库中的表的自动的(和透明的)持久化,使用元数据(metadata)描述对象与数据库间的映射。本质上,ORM的工作是将数据从一种表示(双向)转换为另一种。1.4.1.1提高生产率(Productivity)与持久性有关的代码可能是Java应用中最乏味的代码。Hibernate去掉了很多让人心烦的工作(多于你的期望),让你可以集中更多的精力到业务问题上。不论你喜欢哪种应用开发策略——自顶
8、向下,从域模型开始;或者自底向上,从一个现有的数据库模式开始——使用Hibernate和适当的
此文档下载收益归作者所有