Hibernate缓存_对象状态.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate缓存_对象状态

evict(Object o): 从缓存中清除指定的对象 clear(): 清空缓存中的所有对象 二级缓存是可配置的插件,Hibernate允许选用以下类型的缓存插件 EHCache OSCache SwarmCache JBossCache 这些插件都是由第三方提供的。 Hibernate2以前提倡用 EHCache Hibernate3后提倡用OSCache 查询普通属性结果集测试 查询实体对象结果集测试 Hibernate 查询缓存true 与 二级缓存 fasle查询实体对象结果集测试 Hibernate 查询缓存true 与 二级缓存 true查询实体对象结果集测试 当应用程序调用Session的save()、upate()、saveOrUpdate()、load()、get()、find()以及调用查询接口的list()、iterate()、filter()方法时,如果Session的缓存中不存在相应的对象,hibernate就会把该对象加入到一级缓存中。 属性说明: maxElementsInMemory属性用于指定缓存中最多可放多少个对象。 eternal属性指定缓存是否永久有效。 overflowToDisk 属性指定当系统内存溢出时是否将缓存保存到硬盘 timeToIdleSeconds属性指定缓存多久未被使用便清理掉。单位:秒 timeToLiveSeconds属性指定缓存的生命长度。单位:秒 diskPersistent属性指定缓存是否被持久化到硬盘中,保存路径由diskStore标签指定。 ? ?1,? 活跃程度:? ??? OSCache必威体育精装版版本是: OSCache必威体育精装版版本是2.4.1, 最后一次更新日期2007/07/0707, 来源:/oscache/download.action ??? Ehcache方面的开发情况: 最后一次更新日期2010/12/23, 来源:/projects/ehcache/files/ ? ?? ?2, feature的丰富与否: ?? ? ? ? Ehcache拥有丰富的feature。 OSCache没有看到这么丰富的feature,我可以理解成它没有, 毕竟如果有的的话,也不用藏着掖着。 ? ???3, 文档方面: ???? ??? Ehcache有200多页的用户指南/documentation/EhcacheUserGuide-1.7.1.pdf ??? OScache相对来说要少些/display/CACHE/Documentation。???? Hibernate缓存、对象状态 教学内容 理解Hibrnate的缓存机制 理解对象的状态 Hibernate的缓存 Hibernate的缓存分为: 一级缓存,单个会话的对象缓存。 二级缓存,可插拔的缓存插件 理解Session缓存 当Session加载或保存一个对象时,如果Session的缓存中不存在相应的对象,hibernate就会把该对象加入到一级缓存中。 当再次通过Session加载相同OID的对象时,Hibernate将直接从Session的缓存中获取。 当Session关闭时,缓存将被清空。 //第一次加载时将产生SQL访问数据库 Customer cusa = (Customer)session.get(Customer.class, 1l); //第二次加载同样的Customer时Hibernate将从Session中获取 Customer cusb = (Customer)session.get(Customer.class, 1l); //cusa和cusb应当是同一对象 If(cusa == cusb)System.out.println(“同一个对象!”); //缓存被清空 session.close(); Session缓存的作用 减少访问数据库的频率。 应用程序从内存中获取对象明显快于从数据库中查找。 保证缓存中的对象与数据库相关的记录同步。 当处于缓存中的对象的属性发生改变时,Session不会立即更新数据库,它可以将多次更新合并处理后产生一条更新语句。 Customer customer = (Customer)session.get(Customer.class, 1); customer.setName(jack); customer.setName(mike); session.update(customer); //以上只会产生一条sql语句。 update Customer set name = mike ... 同步Session缓存 Hibernate会在特定的时间自动同步缓存与数据库 当人为提交事务时,commit()方法先清理缓存,然后

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档