SSH企业培训之数据抓取策略与高速缓存.pptVIP

SSH企业培训之数据抓取策略与高速缓存.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SSH企业培训之数据抓取策略与高速缓存ppt课件

数据抓取策略与高速缓存 介绍 讲授: 刘晓涛 Email: lxt008@163.com Blog: /liuxiaotao008 MSN: lxt008@ 本章目标 数据加载策略与优化。 高速缓存讨论(含批量处理)。 对象同一性。 复合主键。 触发器/数据库生成值的处理。 计算列的处理。 数据加载策略与优化 延迟加载 加载代理(往往是ID),真正用到数据时才加载关联数据。 lazy=“true”,默认值。 即时加载 一条SQL语句连接查询,fetch=“join”。 两条SQL语句单独查询,fetch=“select”。 批量加载 设置batch-size属性。 Hibernate抓取策略 1.保持默认,同fetch=select,如: many-to-one name=classes column=classesid fetch=select/ fetch=select,另外发送一条select语句抓取当前对象关联实体或集合 2.设置fetch=join,如: many-to-one name=classes column=classesid fetch=join/ fetch=join,hibernate会通过select语句使用外连接来加载其关联实体或集合 此时lazy会失效 3.保持默认,同fetch=select,如: set name=students inverse=true cascade=all fetch=select fetch=select,另外发送一条select语句抓取当前对象关联实体或集合 4.设置fetch=join,如: set name=students inverse=true cascade=all fetch=join fetch=join,hibernate会通过select语句使用外连接来加载其关联实体或集合 此时lazy会失效 Hibernate抓取策略 5.设置fetch=subselect,如: set name=students inverse=true cascade=all fetch=subselect fetch=“subselect”,另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合,合适的时候使用子查询。 6.batch-szie在class上的应用 batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml class name=Classes table=t_classes batch-size=3 7.batch-szie在集合上的应用 batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml set name=students inverse=true cascade=all batch-size=5 hibernate一级缓存 一级缓存和session的生命周期一致 下面方法支持一级缓存: get() load() iterate(缓存实体对象而不是属性) 如何管理一级缓存: session.clear() session.evict() 如何避免一次性大量的实体数据入库导致内存溢出 先flush,再clear 如果数据量特别大,考虑采用jdbc实现,如果jdbc也不能满足要求可以考虑采用数据本身的特定导入工具。 hibernate二级缓存 也称为进程级的缓存或SessionFactory级缓存,可以被所有的session共享 二级缓存的生命周期和SessionFactory的生命周期一致。 二级缓存的配置和使用: 将echcache.xml文件拷贝到src下 开启二级缓存,修改hibernate.cfg.xml文件 property name=hibernate.cache.use_second_level_cachetrue/property 指定缓存产品提供商,修改hibernate.cfg.xml文件 property name=vider_class org.hibernate.cache.EhCacheProvider/property 指定那些实体类使用二级缓存(两种方法) 在映射文件中采用cache标签 在hibernate.cfg.xml文件中,采用class-cache标签 二级缓存是缓存实体对象的 对象同一性 同一性概念 数据库中一条记录在内存中应该只有一种表示。 同一性级别 事务(session)级别。 过程(SessionFactory)级别(多个session中保证同一性)。 JVM级别。 分布式系统级别。 Hibernate保证事务(session)级别的实体对象的同一性。

文档评论(0)

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

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

1亿VIP精品文档

相关文档