- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
” 如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他 们就是为windows写程序,而不是为Sun的设备写程序” ——Scott McNealy(Sun首席执行官) 第六课 Query接口与查询缓存 回 顾 1、缓存的物理位置是在内存还是在磁盘上,为什么? 2、一级缓存是否是线程安全的,为什么? 3、二级缓存是否是线程安全的,为什么? 4、一二级缓存中存储实体对象的键是什么? 5、缓存主要是提升下面哪个操作的性能( ) A、增加记录 B、删除记录 C、修改记录 D、查询记录 6、Hibernate为什么自带了一级缓存还要提供对第三方二级缓存的支持? 本课案例 完成查询缓存的配置和使用 本课目标 理解get/load方法的执行流程 理解Query接口的作用 掌握HQL与SQL语言概念及使用 掌握查询缓存的配置与使用条件 理解list/iterate方法的执行流程 get方法的执行流程 1、get方法执行流程: get方法根据用户给定的实体ID作为键首先检索缓存,缓存没有命中(即没有从缓存中检 索到实体对象)则根据映射配置是否延迟装载发起sql查询数据库来获取实体对象并缓 存查询到的实体对象,在返回的实体对象进一步调用getter方法取出属性(返回的是实体 对象或实体对象集合)时同样首先根据实体ID检查缓存,缓存没有命中再根据映射配置 是否延迟装载发起新的一轮sql查询数据库,并将新一轮装载的实体对象或实体对象集 合回填至缓存中 2、get方法执行时首先取缓存数据的事实,我们在上一张已经看到了,现在来看一个延迟和 立即装载的特征,User实体的映射中其Set集合属性映射的默认lazy=true,即默认为延迟 装载,如果将它的值改成false则为立即装载 注: 以下的实例以常见的一对多关系为例来说明get方法的立即装载与延迟装载,在此,省略数据库、表、实体类以及映射文件的创建过程 实体DAO层实现 public class UserDaoImpl implements IUserDao{ private SessionFactory factory; .........省略构造方法.............. public User addUser(User user) { Session session=factory.getCurrentSession(); Transaction tx=null; User user=null; try{ tx=session.beginTransaction(); user=(User)session.get(User.class, userId); System.out.println(“....call user getter....); SetOrder orders=user.getOrders(); Iterator its=orders.iterator(); mit(); }catch(Exception e){ if(null!=tx)tx.rollback(); e.printStackTrace(); } return user; } } 修改映射文件User.xml,在set标签中增加lazy=false ?xml version=1.0 encoding=UTF-8? !DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//EN /hibernate-mapping-3.0.dtd hibernate-mapping package=“com.scxh.hit03.po” class name=User table=t_user id name=userId column=user_id type=long generator class=native“/ /id property name=userName column=user_name type=string/ property name=userPass column=user_pass type=string/ !—改变lazy的属性值为false(默认值为true),即非延迟装载-- set name=orders table=t_order cascade=“none inverse=t
您可能关注的文档
最近下载
- 2022东君照明集中控制系统用户手册.docx VIP
- 〖GB50011-2016〗建筑抗震设计规范(2016年版).docx VIP
- 《浙江省建设工程其他费用定额》(2018版).docx
- 怎样恢复已删除的文件.doc VIP
- 2025年中国铁道橡胶垫板数据监测报告.docx
- 2023-2024全国初中物理竞赛试题精选精编第05讲凸透镜成像(解析版).docx VIP
- 2001-2016年电子科技大学《601数学分析》历年考研真题汇总(含部分答案).pdf VIP
- 古典文献学第二章 文献的形成和流布.ppt VIP
- 2025年综合窗口岗位工作人员招聘考试笔试试题(附答案).docx VIP
- 纪念中国红军长征胜利89周年PPT课件.pptx VIP
文档评论(0)