网站大量收购闲置独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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)

ghfa + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档