<p>1,hibernate在查找数据的时候,会首先从一级缓存里面查找,再从二级缓存里面查找。</p>
<p>2,在缓存里找到的话,叫做“命中”。如果命中率过低的话,会导致使用二级缓存反而降低效率的问题。</p>
<p>3,如果想要观察二级缓存的命中率等信息,可以把统计信息打开</p>
<p> <property name="generate_statistics">true</property ></p>
<p> 设置完成后,可以打印出统计信息:</p>
<p> Statistics st=HibernateUtil.getSessionFactory().getStatistics();</p>
<p> System.out.println(st);</p>
<p>4,save()方法也会导致数据放入二级缓存,但是这个主键生成器有关系,如果是native的话,不会放入。如果是"hilo"的话,就会放入缓存</p>
<p>5,二级缓存存入和取出的方式跟一级缓存类似。</p>
<p>6,清除二级缓存里面的数据HibernateUtil.getSessionFactory().evict(User.class,id);一般不会需要。</p>
<p>7,缺省的,对于查询的数据的缓存,Hibernate会将其关掉,如果我们需要的话,我们需要手动的打开。</p>
<p> 例如 Query q=s.createQuery("from User where id="+id);</p>
<p> user=(User)q.uniqueResult();</p>
<p> q.setCacheable(true);</p>
<p> System.out.println(user.getName);</p>
<p><property name="cache.use_query_cache">true</property></p>
<p>之所以要这样麻烦,是因为查询时,命中率很低(只有两次query语句完全一致的时候,才会命中),所以通常打开是没有必要的。</p>
分享到:
相关推荐
hibernate缓存机制 hibernate缓存机制 hibernate缓存机制
首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再具体说说Hibernate中缓存的分类情况,最后可以举个具体的例子。 Hibernate缓存的作用: Hibernate是一个持久层框架
Hibernate缓存机制探讨
Hibernate缓存机制.txt
Hibernate缓存机制研究与应用,详细解释了hibernate的缓存机制及其使用。
Hibernate缓存机制探讨.doc
Hibernate缓存机制的简单解释,可以下载去看看
hibernate缓存机制分析共17页.pdf.zip
hibernate缓存机制,你必须学的持久层技术。
Hibernate缓存介于Hibernate应用和数据库之间,缓存中存放了数据库数据的拷贝。 其作用是减少访问数据库的频率,从而提高应用的运行性能
Hibernate的缓存机制
主要介绍了Hibernate缓存机制实例代码解析,介绍了查询缓存,一级二级缓存等内容,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
Hibernate缓存机制对Hibernate的性能发挥一直处于一个极其重要的作用,它是持久层性能提升的关键。 hibernate缓存在应用系统中的位置 Hibernate缓存介于Hibernate应用和数据库之间,缓存中存放了数据库数据的...
hibernate的缓存机制和session对象的产生方式案例,里面写到session的两种产生方式,和hibernate的缓存机制:一级缓存、二级缓存、查询缓存
hibernate的缓存机制以及优化策略
Hibernate缓存深入详解,详细介绍Hibernate缓存机制。 1.Hibernate缓存概述 2.Hibernate一级缓存(Session缓存) 3.Hibernate二级缓存 4.查询缓存 5.二级缓存的高级应用(分布式缓存)
hibernate 的缓存机制 总结,供您参考,希望对你有所帮助
基于hibernate的缓存机制,这个是打包后的jar包。