- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate框架持久化应用及原理探析.doc
Hibernate框架持久化应用及原理探析
摘 要:针对Web应用开发中如何高效的与存储层交互问题,讨论了Hibernate框架的持久化机制以及实现原理,阐述Hibernate框架的适用场景;同时讨论ORM的思想原理,最后说明Hibernate框架在Web开发中的重要作用。
关键词:ORM;持久化;实体;事务;映射
前言
Hibernate框架最初是由一个名字为Gavin King的程序员,在2001年根据自己对ORM思想的理解,构建出来的一个Java持久化应用。在推出第一版后,很快得到了编程界的广泛关注,并随后被JBoss公司收购,从此Hibernate框架不断推陈出新,在Java EE持久化领域独占熬头。
1 Hibernate框架应用
Hibernate作为一个持久化框架,其底层对JDBC的API进行了封装,并在上层把自身的API暴露给应用程序业务层的一种全自动类型的持久化框架。其之所以能风靡编程界,与其自身的特性密切相关。
(1)Hibernate框架提供多个级别的缓存来加快数据的读写速度,如:一级的Session缓存、二级的插拔缓存。
(2)Hibernate框架的API及HQL语句具有开发性,能够在不同的关系型数据库中通用,可以实现一次编写,随处运行的思想。
(3)Hibernate框架的实体类中,只要求有对应的set、get方法,而无须引入其它类,因而它是一种非入侵的开发方式。
2 ORM原理与实现
ORM也叫对象关系映射(Object Relation Mapping),是面向对象语言操作持久层的一种有力工具。因面向对象语言与关系数据数据库的交互存在一定的障碍,作为ORM的职责就是在它们中间建立一个交互的渠道,以方便程序与数据层的通信。
ORM的实现方式有很多种,Hibernate是其中的一种开源实现方式,具体实现过程如图1所示。通过ORM插件的映射API及XML映射规则,面向对象语言域模型中的业务实体最终变成关系数据库中的数据表,对象将成为表中记录,属性将映射成表中的字段。应用程序将通过Hibernate框架的HQL语句及实体对象与ORM插件模块进行通信,而关系数据库则通过SQL语句及数据关系与ORM插件模块交互。
3 Hibernate框架组件
Hibernate框架的ORM运作机制以及跨数据库平台执行能力是通过五大核心组件支撑起来,如图2所示。
Configuration接口:从配置文件hibernate.cfg.xml与实体映射文件*.hbm.xml文件中读取相应的配置信息,负责程序运行环境初始化,并构建BeanFatory实例。
SessionFatory接口:代表关系数据库中的逻辑数据源,为重量级组件,一个实例代表一个逻辑库,不能随意创建及销毁。
Session接口:代表关系数据库的连接,轻量级组件,从SessionFatory接口中可取得此实例,该实例中有对关系数据库增、删、改、查的操作API。
Query接口:框架中所有通过HQL语句去操作关系数据库时,都必须通过此组件来实现,从Session接口中取得该实例。
Transaction接口:框架的事务管理接口,所有对关系数据库的写操作都必须在框架中开启事务,否则不会提交到数据库存储层。
4 Hibernate对象管理
当应用程序通过Hibernate API与关系数据库交互时,持久化框架内的实体对象存在着如图3所示生命周期管理过程。
当业务实体对象被通过new的方式刚刚创建时,这时实体对象还未与任何持久化机制发生关联,与普通的JavaBean对象完成一模一样,此时实体对象的状态称之为临时状态,也叫瞬时状态。
当实体对象进入Hibernate的Session缓存时,此时的对象已经跟持久化机制发生关联,实体对象则处于持久化状态。
当实体对象已经变成关系数据库数据表中的某条记录时,且已不存在Session中,此时则称实体对象处于游离状态或脱管状态。
实体对象的状态可以通过框架API的中方法,在三种状态中进行相互的转换。在临时状态下,通过save方法可以使对象变成持久化状态,在持久化状态下则可以通过delete方法,使对象重新返回到临时状态中。在持久化状态下,则可以通过close、clear等方法使对象变成游离状态,反过来,通过lock、update等方法则可以使对象的状态从游离形式返回到持久化形式。在游离状态下,还可以通过delete方法,直接使对象返回到临时状态。
5 结束语
Hibernate框架是一个持久层的优秀框架,同时也是一个主流的ORM工具,其可以让开发人员以对象思维操作关
您可能关注的文档
- 2016年全球十大人物.doc
- 2016年吉林省中考作文试题解析及佳作选评.doc
- 2016年和县中籼稻杂交组合展示试验.doc
- 2016年商用汽车盘点.doc
- 2016年国际盘点.doc
- 2016年江苏盐城中考作文题解与佳作展评.doc
- 2016年的六个镜头:责任的重量.doc
- 2016年第10期参考答案.doc
- 2016年西方民粹主义政治的新发展.doc
- 2016年都匀市健康人群乙肝抗体水平检测结果分析.doc
- HIF―1a、VEGF、MVD在大肠腺癌组织中的表达及临床意义.doc
- HIV患者行胃镜的护理风险分析及防范措施.doc
- HIV感染合并慢性腹泻患者粪便标本的病原微生物检测分析.doc
- HIV检测对男男性接触人群艾滋病感染风险的影响分析.doc
- HMG―CoA还原酶抑制剂研究进展.doc
- HoneywellSM系统在制氢装置的应用及故障处理.doc
- How did CITIC make an annual income of RMB 20 million from e―book?.doc
- How to avoid Errors in English and Chinese Cross―cultural Communications.doc
- How to be an effective teacher in tourism and hospitality management?.doc
- How to deal with golden employee retention in IT organisations.doc
文档评论(0)