- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第33卷第5期 杭州电子科技大学学报 V01.33,No.5
of Dianfi
2013年lO月 JomalH∞gdlOU University Oct.2013
doi:10.3969/j.issn.1001-9146.2013.05一04l
Hibernate的缓存机制及其应用的研究
曹伟,应君,董黎刚
(浙江工商大学信息与电子工程学院,浙江杭州310018)
摘要:Hibernate是一个现下较流行的对象关系映射框架,它对JDBC进行了轻量的封装,从此Java
开发人员对关系数据库的操作变得十分轻松。Hibernate的缓存机制为数据库操作优化提供了一
套很好的解决方案。利用其缓存机制可有效的提高数据库读写效率,提升软件性能。经过实际的
使用和研究,该文将介绍Hibernate的缓存机制以及应用。 ,
关键词:对象关系映射框架;缓存;二级缓存;查询缓存
中图分类号:TP311 文献标识码:A 文章编号:1001一.9146(2013)05—0158—04
O 引 言
在软件系统开发中,数据库操作是影响软件系统整体性能的一个关键因素,如何获得更加高效的数
据库的交互,然而这种解决方案封装性差,开发难度大H】。Hibernate的诞生为面向对象的编程推波助
合理应用是一个不可忽视的原因。本文将剖析如何利用Hibernate的缓存机制来提高数据读写效率,从
而提升软件性能。
1缓存概念
缓存是介于应用程序和物理数据源
之间,其作用是为了降低应用程序对物
‘
理数据源访问的频次,从而提高了应用
的运行性能。缓存内的数据是对物理数
据源中的数据的复制,应用程序在运行
时从缓存读写数据,在特定的时刻或事
件会同步缓存和物理数据源的数据。 鼬锄al。
Hibernate的缓存结构如图1所示,可
分为—级缓存、二级缓存和查询缓存口J。
1.1一级缓存
一级缓存是Session内部的缓存,不
能被卸载或者删除,它随着Session的产
生而产生,也随着Session的灭亡而消失。 图1 Hibernate缓存结构
在一级缓存中,持久化类的每个实例都具有唯一的OID。当一个Session对象中对某一个数据对象进行
收稿日期:2013一07—20
作者简介:曹伟(1991一),男,河北沧州人,在读本科生,网络工程.
第5期 曹伟等:Hibernate的缓存机制及其应用的研究 159
一个数据对象时=厶-fi-先在一级缓存中查询。如此便可有效解决频繁提交数据库操作的问题。.
应用中又有这样的需求,此时可利用Hibernate的二级缓存来解决这个问题。
1.2二级缓存
行配置和更改,并且可以动态加载和卸载”】。
当Hibernate根据ID访问数据对象的时候,使用二级缓存的数据查询操作如图2所示。
臣习甲巨习臣口
图2时序图
当Hibernate发现二级缓存中已经有了该条数据,就会直接拿来用,而不必去数据库查询,当二级缓
存中没有找到时才会到数据库中取。
试想,当有N个客户端请求同—个数据对象时如图3所示,如果系统开启了二级缓存,那么至少可以
减少N一1条数据库通信消息,尤其当这个数据对象经常被访问的时候,二级缓存的优势将十分明显。
图3多客户端访问
160 杭州电子科技大学学报 2013年
但是,二级缓存都基于ID来识别对象的№J,如果希望使用条件查询那么二级缓存就无用武之地
了。为了解决这个问题,Hibernate在设计中就构
文档评论(0)