第8章-持久化对象状态与一级缓存.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
? ? ? ? ? ? ? SSH框架整合实战教程 第8章 持久化对象状态和一级缓存 Hibernate持久化对象的状态 Hibernate的一级缓存 掌握 了解 熟悉 1 了解一级缓存 的常用操作 熟悉持久化对象状态 转换、Hibernate快照 2 3 掌握Hibernate持久化对象的3 种状态、Hibernate一级缓存 学习目标 Hibernate持久化对象的状态 8.1 ?点击查看本小节知识架构 Hibernate的一级缓存 8.2 ?点击查看本小节知识架构 目录 8.1 Hibernate持久化对象的状态 返回目录 8.1.1 8.1.2 Hibernate持久化对象的状态 持久化对象状态的转换 知识架构 8.2 Hibernate的一级缓存 返回目录 8.2.1 8.2.2 什么是Hibernate的一级缓存 一级缓存的常用操作 知识架构 什么是持久化对象? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作。所谓的持久化,就是将内存中的数据永久存储到关系型数据库中。 8.1 Hibernate持久化对象的状态 瞬时态 持久态 脱管态 此对象是由new命令创建、开辟内存空间的对象,不存在持久化标识OID,尚未与Hibernate Session关联,在数据库中也没有记录,失去引用后将被JVM回收。 此对象存在持久化标识OID ,在Session缓存中,并且相关联的Session没有关闭,在数据库中有唯一对应的记录,注意:持久态对象是在事务还未提交前变成持久态的。 此对象存在持久化标识OID,并且仍然与数据库中的数据存在关联,只是失去了与当前Session的关联,脱管状态对象发生改变时Hibernate不能检测到。 持久化对象的三种状态 8.1 Hibernate持久化对象的状态 持久化对象的三种状态 案例代码 8.1 Hibernate持久化对象的状态 持久态 瞬时态 托管态 执行Session的Update() saveOrUpdate()或Lock() 方法 执行Session的delete()方法 为瞬时态对象设置持久化标识OID 执行Session的evict()、close()、clear()方法 执行Session的save()或者saveOrUpdate()方法 将托管对象持久化标识OID设置为null 8.1 Hibernate持久化对象的状态 什么是一级缓存? 8.1 Hibernate的一级缓存 一级缓存的特点和刷出时机? (1)当应用程序调用Session接口的save()、update()、saveOrUpdate时,如果Session缓存中没有相应的对象,Hibernate就会自动的把从数据库中查询到的相应对象信息加入到一级缓存中去。 (2)当调用Session接口的load()、get()方法,以及Query接口的list()、iterator()方法时,会判断缓存中是否存在该对象,有则返回,不会查询数据库,如果缓存中没有要查询对象,再去数据库中查询对应对象,并添加到一级缓存中。 (3)当调用Session的close()方法时,Session缓存会被清空。 (4)Session 能够在某些时间点,按照缓存中对象的变化,执行相关的 SQL 语句来同步更新数据库, 这一过程被称为刷出缓存(flush)。 特点 (1)当应用程序调用 Transaction 的 commit()方法时,该方法先刷出缓存,然后再向数据库提交事务。 (2)当应用程序执行一些查询操作时,如果缓存中持久化对象的属性已经发生了变化,会先刷出缓存,以保证查询结果能够反映持久化对象的最新状态。 (3)调用 Session 的 flush() 方法。以上是Hibernate一级缓存的刷出时间。对于刚刚接触到Hibernate的读者来说并不是很容易理解,为了帮助读者更好得理解Session的一级缓存,接下来通过具体案例来演示Session一级缓存的使用。 刷出时机 8.1 Hibernate的一级缓存 演示:Hibernate一级缓存的存在和Hibernate快照的应用。 Hibernate一级缓存示例 Hibernate快照的应用 8.1 Hibernate的一级缓存 Hibernate一级缓存常用操作 刷出(flush) 清除(clear) 刷新(refresh) 8.1 Hibernate的一级缓存 本章主要讲解了持久化对象的状态和一级缓存的知识,首先讲解了持久化对象的三种状态及三种状态的转换,然后讲解了Hibernate的一级缓存和一级缓存的常见的操作。 通过本章的学习

文档评论(0)

js1180 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档