- 1、本文档共119页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernat的e应用_课堂
* Hibernate的二级缓存(1) Hibernate的二级缓存策略的一般过程如下: 1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。 2) 把获得的所有数据对象根据ID放入到第二级缓存中。 3) 当Hibernate根据ID访问数据对象的时候,首先从 Session一级缓存中查;查不到,如果配置了二级缓 存,那么从二级缓存中查;查不到,再查询数据库, 把结果按照ID放入到缓存。 4) 删除、更新、增加数据的时候,同时更新缓存。 * Hibernate的二级缓存(2) Hibernate本身并未提供二级缓存的产品化实现(只提供了一个基于HashTable的简单缓存以供调试)。 这里使用的是第三方缓存组件:EHcache.Hibernate的二级缓存实现需要进行以下配置(Hibernate3): 首先在hibernate.cfg.xml内添加: property name=vider_class org.hibernate.cache.EhCacheProvider /property?? property name=hibernate.cache.use_query_cache true /property?? 然后在映射文件中添加:cache usage=read-only/?? 测试上面代码:控制台输出多了这样一句[ WARN] (CacheFactory.java:43) - read-only cache configured for mutable class: hibernate.TUser,二级缓存启用成功!!???? * Hibernate的二级缓存(3) java 代码public class Test {???????? ?????? public void executeQuery(){????????????????? List list = new ArrayList();???????????????? Session session = HibernateSessionFactory.getSession();???????????????? Query query = session.createQuery(“from TUser t”);???????????????? query.setCacheable(true);//激活查询缓存???????????????? list = query.list();???????????????? session.close();?????? ?????? }???? ?????? public void get(){?????? ????????? Session session = HibernateSessionFactory.getSession();???????????????? TUser t = (TUser)session.get(hibernate.TUser, 2);???????????????? System.out.println(t.getName());???????????????? session.close();?????? ???? }?????? }? 测 试:控制台只输出一条SQL语句:Hibernate: select tuser0_.id as id0_, tuser0_.name as name0_, tuser0_.sex as sex0_ from test.t_user tuser0_(即Query query = session.createQuery(from TUser t)这句代码所对应的SQL).?? executeQuery()方法与get()方法使用的是不同的Session!!可是 executeQuery()方法与get()方法只对数据库进行了一次操作,这就是二级缓存在起作用了. * 查询缓存概述 Hibernate的二级缓存策略是针对ID查询的策略,和对象ID密切相关,那么对于条件查询就不怎么适用了。对于这种情况的存在,Hibernate引入了“查询缓存”,在一定程度上缓解这个问题。 启用查询缓存后,第一次执行查询时,Hibernate会把查询结果放入查询缓存中。以后再次执行该查询语句时,只需从缓存中获得查询结果,从而提高查询性能。 查询缓存依赖二级缓存。 * 启用查询缓存
您可能关注的文档
最近下载
- (精品)一元一次不等式及一元一次不等式组及答案.doc VIP
- 2025年党支部工作计划(详细版).docx VIP
- GB 50168-2018 电气装置安装工程电缆线路施工及验收标准.docx
- 小猪佩奇第二季中英文(文本).docx
- 佳能EOS-60D-数码相机使用手册(说明书).pdf
- 高血压中医辩证防治和保健.ppt VIP
- 国防军工行业低成本弹药深度之一:航空制导炸弹为空中精确打击主要武器,小型化、复合制导是重要趋势.docx
- 2019北京中考专题复习总结--几何综合.pdf
- 家具售后服务承诺及方案.doc
- (正式版)F-Z∕T 80014-2024 洁净室服装 通用技术规范.docx VIP
文档评论(0)