- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓存,象在持久层的三种状态
对象在持久层的三种状态(面试时经常问)
一、session缓存(面试时经常问)
(一)Session缓存的作用:
Session.save()吃就换一个Customer对象时,把Customer对象放入session缓存中,以后即便是程序中引用变量不再引用Customer对象,只要Session缓存还没有清空,Customer对象依然处于生命周期中。
好处:
减少访问数据库的频率。
保证缓存中的对象与数据库中的相关的记录一致
清理缓存是指按照缓存中的对象的状态的变化来同步更新数据的。
(二)Session缓存清理的时间点:
1、当应用程序调用org.hiberante.Transaction的commit()方法时候,commit()先清理缓存再向数据库提交事务。
2、当应用程序调用session中的flush()方法时候
二、hibernate缓存的种类(面试时经常问)
(一)、Session:一级缓存,不可改,必须使用。
由于Session对象的生命周期,通常对应一个数据库事务或者一个应用事务,因此session缓存是事务范围内的缓存。一级缓存是必须的,而且不允许修改也无法别卸载,持久化类每个对象实例都要有唯一的OID(主键ID)。
(二)、SessionFactory:二级缓存,可改,可拔插。它是由SessionFactory进行管理的。SessionFactory的生命周期和整个应用程序的生命周对应。因此SessionFactory缓存称为进程范围的缓存。可选,可以针对某个集合粒度上配置二级缓存。
Hiberante的第一级缓存(session缓存)Hiberante的第二级缓存(SessionFacory缓存)
Hiberante的第一级缓存(session缓存)
Hiberante的第二级缓存(SessionFacory缓存)
缓存并发访问策略。
查询缓存。
缓存适配器(CahceProvider)
缓存的实现
三、对象在持久层的三种状态(面试时经常问)
1、临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于session的缓存中。处于临时状态。临时对象。
2、持久化状态(persustent):已经被持久化,加入到session的缓存中(没有到数据库中)。持久化对象。
3、游离状态(detached):已经被持久化,但不处于session的缓存中(不一定到数据库中)。游离对象。
临时状态
临时状态
持久化状态
持久化状态
Save()/saveOrUpdate() delete() delete()
evict()/close()/clear() update/saveOrUpdate
游离状态 lock()
游离状态
例子:
//Category对象开始生命周
tx=session.beginTransaction();
//临时状态
Category category1=new Category(level1,null,new HashSetCategory());
//Category cateory=(Category)session.get(Category.class, 1);
//转变为持久化状态
session.save(category1);
//处于持久化状态
Category cateory=(Category)session.get(Category.class, 1);
//转变为游离状态
session.close();
//处于游离状态
cateory.getName();
//结束生命周期
cateory=null;
四、Hibernate的检索策略
(一)、立即检索(查询所有Customer(4条数据),Oreders的数据)
List customerLists=session.createQuery(“
From Customer as c
”).list();
Select * from customer
Select * from Oreders where Customer_id=1;
Select * from Oreders where Customer_id=2;
Select * from Oreders where Customer_id=3;
Select * from Oreders where Customer_id=4;
缺点:
select语句太多,需要频繁访问数据库影响检索性能。
以上查询可以用左外连接去查询
Select * from Custom
您可能关注的文档
- 管理信系统实验.doc
- 管理学习样题.doc
- 管理信系统知识点.doc
- 管理信系统作业.doc
- 管理学习题及答案汇总(刑以群版教材).doc
- 管理学品课程课后习题.doc
- 管理学理阶段练习一.doc
- 管理思答卷1.doc
- 管理学点整理.doc
- 算术运单元ALU的设计 实现几种基本功能.doc
- 建设工程质量安全管理标准化图集(安全篇2024版)ppt230页.pptx
- 《油气储存企业安全风险评估细则(2025年修订)》解读.pptx
- 2025年《危大工程专项施工方案严重缺陷清单专题培训》ppt120页_1230.pptx
- 中建分部分项检验批划分方案、资料目录策划编制要点ppt75页.pptx
- 某项目智慧工地示范项目应用成果介绍75页_5843.pptx
- 2025年中国风筝无人机LED夜光编队编程师应聘面试模拟题及答案.doc
- 2025年中国鞍钢集团招聘笔试题库附答案.doc
- 2025年中国鞍钢集团招聘面试预测题及答案.doc
- 临床器械实验培训试题及答案2025年版.docx
- 中石化《两个责任》解读分析.ppt
最近下载
- 敖伦布拉格石料矿矿山地质环境保护与土地复垦方案.docx VIP
- 《0~3岁婴幼儿心理发展与教育》教案 第5课 掌握婴幼儿粗大动作的发展与指导.docx VIP
- 《0~3岁婴幼儿心理发展与教育》教案 第4课 了解婴幼儿动作发展的意义和规律.docx VIP
- ARDS病理生理机制与临床诊疗实践题库答案-2025年华医网继续教育.docx VIP
- 高一政治开学第一课2024-2025学年高一政治精彩课堂示范课件(统编版必修1).pdf VIP
- 我国动车组概述褚云博课件.pptx VIP
- 手术部位感染预防与控制标准2025版课件.pptx VIP
- 道路运输企业安全风险辨识分级管控清单104.ppt VIP
- 讲法语的国家与地区.pdf VIP
- Excel商务数据分析与应用 配套课件.ppt VIP
文档评论(0)