学习_Hibernate.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文档。上传文档
查看更多
学习_Hibernate

HQL 查询实体 查询单个属性 查询多个属性 条件查询 聚合函数 查询单个结果集 排序 分组 子查询 导航查询 * 分页 连接查询(联表查询) 批量更新 SQL 动态查询 缓存 缓存是数据库数据在内存中的临时容器,它包含了库表数据在内存中的临时拷贝,位于数据库和访问层之间。 ORM在进行数据读取时,会根据缓存管理策略,首先在缓冲中查询,如果发现,则直接使用,避免数据库调用的开销。 数据缓存的策略: 事务级缓存:当前事务范围内的数据缓存 应用级缓存:某个应用中的数据缓存 分布式缓存:多个应用,多个JVM之间共享缓存。分布式缓存由多个应用级缓存实例组成集群,通过某种远程机制实现各个缓存实例之间的数据同步,任何一个实例的数据修改后,将导致整个集群间的数据状态同步。 Hibernate缓存分为两个层次:一级缓存(事物级缓存)和二级缓存(应用级 缓存和分布级缓存) 5. Hibernate的缓存在两种情况下发挥作用: 根据主键加载实体(po对象) get,load 加载关联对象 使用HQL查询时 List,iterator 一级缓存 通过实验了解一级缓存特性: 同一session中发出两次load 同一session中发出两次get 同一session中发出两次iterate查询实体对象 同一session中发出两次list查询实体对象 同一session中发出一次list,一次iterate 查询实体对象 同一session中发出两次iterate查询属性 同一session中发出两次list查询属性 两个Session中load 在同一session中先存再load存过的对象 一级缓存管理 批量更新 一级缓存 一级缓存的数据结构是Map,用于存储查询实体。Map的key存放实体的Id,Map的value存放实体(po对象)本身。所以一级缓存无法存储查询的属性。 一级缓存的生命周期与Session有关,Session产生时一级缓存创建,Session关闭时一级缓存销毁 Get,Load,Iterator方法读写一级缓存,List方法只写不读一级缓存 一级缓存不能禁用,但可以通过Session的clear方法和evict方法清理一级缓存,从而达到禁止写缓存的效果 Session的save方法会写缓存,在批量插入数据时要注意对一级缓存做定时清理。Hibernate的批量处理效率不高,建议使用Session.connection()或得Jdbc连接后使用Jdbc的相关API做批处理操作 二级缓存 二级缓存也称进程级的缓存或SessionFactory级的缓存,二级缓存可以被所有的session共享。 二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存。 Hibernate 默认情况下是打开的,提供一个Hashtable存储二级缓存,但只适用于研发,开发中为第三方缓存组件提供了接入接口,我们可以根据不同情况选择不同的实现。 二级缓存也只能缓存实体对象,不缓存属性。 ehcache二级缓存的配置和使用: * 将echcache.xml文件拷贝到src下 * 开启二级缓存,修改hibernate.cfg.xml文件 property name=hibernate.cache.use_second_level_cachetrue/property * 指定缓存产品提供商,修改hibernate.cfg.xml文件 property name=vider_classorg.hibernate.cache.EhCacheProvider/property * 指定那些实体类使用二级缓存(两种方法) * 在映射文件中采用cache标签 * 在hibernate.cfg.xml文件中,采用class-cache标签 二级缓存 通过实验了解一级缓存特性: 不同的session中调用两次load方法加载同一实体 不同的session中调用两次get方法加载同一实体 不同session中调用两次iterator方法查询实体 不同session中调用一次list方法查询实体,再调一次iterator方法 不同session中调用两次list方法查询实体 不同session中调用两次iterator方法查询属性 一个session中调用save方法保存瞬时态实体,然后另一个session再load它 管理二级缓存 一二级缓存交互 session.setCacheMode() CacheMode.PUT CacheMode.GET CacheMode.NORMAL 二级缓存 Get,Load,Iterator方法读写二级缓存,List方法只写不读二级缓存 总配置文件h

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档