- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于hibernateORM持久化操作
基于hibernateORM持久化操作【摘要】hibernate框架用于提供一种持久化的对象-关系映射模型解决方案,为此,本文在hibernate框架的基础上对几种关联映射进行了研究,提出了一种基于hibernate关联映射模型,并将其应用到了信息系统的开发中,取得了通用性效果。
【关键词】hibernate;持久化层;ORM模型;信息系统开发
一、引言
目前使用的数据库都是关系型数据库,而java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性。如何设计一个低耦合,高内聚并且具有良好的可维护性、可扩展性的系统一直是软件工程领域重点研究的问题,在java web应用开发中引入优秀的框架使之成为可能。[1]
框架(Framework)是可重用的半完成的应用程序,可以用来产生专门的定制程序。[2]框架一般具有即插即用的可重用性,成熟的稳定性以及良好的团队协作性。[3]Hibernate技术框架本质上是一个提供数据库服务的中间件。[4]ORM也可以理解为一种规范,它概述了这类框架的基本特征:完成面向对象的程序设计语言到关系型数据库的映射。基于ORM框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的技术优势。ORM框架是面向对象程序设计语言与关系数据库发展不同步时的中间解决方案。[5]
二、hibernate简介
Hibernate利用反射机制在运行时实现持久化一个对象的各种操作,保证了源码的简练和完全的面向对象风格。[1]Hibernate全局配置文件hibernatecfg.xml中描述数据库连接信息,注册系统所有的对象-关系映射文件(*.hbm.xml),以便应用启动后就完成了数据库的连接和所有映射文件的加载工作。[1]
当启动Hibernate框架时,Hibernate的配置文件对数据库进行配置同时加载映射文件,通过映射文件把持久化对象和数据库表之间建立一个映射关系。该映射文件描述了数据库表中的信息,也描述了对应的持久化类对象的信息,同时,Hibernate内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。[6]
三、ORM简介
ORM主要用于解决面向对象编程语言和关系数据库之间不协调的问题。
对象关系映射(Object Relational Mapping,ORM)是将java对象的状态映射到数据库上,即将java中的对象与对象的关系对应为关系数据库中表与表之间的关系,以便提供透明持久化操作。ORM的目标是简化持久化模型中的实体对象,使开发人员避免编写数据访问的代码。它的作用是在关系型数据库和对象之间做一个映射。在引入一个ORM后,可以用ORM保存,删除,读取对象,ORM负责生成SQL,开发人员只需要关心对象。[7]
四、Hibernate的关联映射
Hibernate的核心任务是根据映射文件中配置信息建立实体对象与关系数据库二维表之间的映射。Hibernate首先由SessionFactory将一个普通的java对象(POJO)转换成持久化类,再通过ORM在数据库表和类的对象之间建立映射,通过JDBC,JNDI等数据库接口访问数据库[2],关联映射的定义在这里尤为重要。
1.持久化类及持久化对象
Hibernate的作用是使普通的java对象成为持久化类。持久化对象(persistent object)是一个完全符合java bean规范的纯java对象,它包含符合统一标准的属性和方法,其属性只可以通过自身的get和set方法访问,这样对外隐藏了内部实现的细节,规范了事务处理部分中每个属性所对应的数据库字段的数据操作。[3]
Hibernate允许持久化对象拥有复杂的结构如混合类型,集合和属性,还可以拥有用户自定义的类型。这些持久化对象可以有效的反映出数据库模式的复杂结构。[8]
2.持久化对象的映射定义
映射文件*.hbm.xml包含了对象关系映射所需的元数据。元数据中包含了持久化类的声明及类中各个属性到数据库表中各个字段的映射关系。其属性可以作为一般值存在,也可以指向其他实体的关联,在关系型数据库中体现为数据表的外键。[3]持久化类及持久化对象的关系映射代码如下:
public class TableMany implements java.io.Serializable {
// Fields
private Integer priKeyMany;
private TableOne tableOne;
// Constructors
/** default c
原创力文档


文档评论(0)