hibernate二级缓存

                                                                                 Hibernate二级缓存又称为“SessionFactory的缓存”

1.Hibernate二级缓存介绍

        由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,

        有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。

        第二级缓存是可选的,是一个可配置的插件,默认下SessionFactory不会启用这个插件。

        Hibernate提供了org.hibernate.cache.CacheProvider接口,它充当缓存插件与Hibernate之间的适配器。

        Hibernate二级缓存在于sessionFactory sessionFactory 关闭,二级缓存消失(二级缓存默认开启)。

2.Hibernate二级缓存原理

        Hibernate的二级缓存的实现原理与一级缓存是一样的,也是通过以IDkeyMap来实现对对象的缓存。

3.什么样的数据适合存放到第二级缓存中?

1) 很少被修改的数据   
2) 不是很重要的数据,允许出现偶尔并发的数据   
3) 不会被并发访问的数据   
4) 常量数据

4.什么样的数据不适合存放到第二级缓存中?

       1) 经常被修改的数据   
        2) 绝对不允许出现并发访问的数据,如财务数据,绝对不允许出现并发   
        3) 与其他应用共享的数据 


5.二级缓存管理

         evict(Class arg0, Serializable arg1)将某个类的指定ID的持久化对象从二级缓存中清除,释放对象所占用的资源

         sessionFactory.evict(Customer.class, new Integer(1));

         evict(Class arg0)  将指定类的所有持久化对象从二级缓存中清除,释放其占用的内存资源。

         sessionFactory.evict(Customer.class);

         evictCollection(String arg0)  将指定类的所有持久化对象的指定集合从二级缓存中清除,释放其占用的内存资源。

         sessionFactory.evictCollection("Customer.orders");

6.二级缓存的配置,常用的二级缓存插件:

           EHCache  org.hibernate.cache.EhCacheProvider

           OSCache  org.hibernate.cache.OSCacheProvider

           SwarmCahe  org.hibernate.cache.SwarmCacheProvider

           JBossCache  org.hibernate.cache.TreeCacheProvider

7.二级缓存简单操作实现

 (1)创建Java项目,整个项目如图:

 

(2)配置book.hbm.xml与Book(同hibernate一级缓存一样)

(3)二级缓存是通过<cache>元素来进行配置的,所以在book.hbm.xml里面配置加入

       <cache  usage="read-only" />

(4)Hibernate2.cfg.xml里面需要添加配置

<property name="cache.use_second_level_cache">true</property>  <!--true默认开启 --!>

<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

<property name="hibernate.cache.use_query_cache">true</property>

(5)增加EHCache配置参数

   

(6)测试类Demo2

(7)效果展示   微笑    (cache配置后区别,二级缓存开启时只查询一条SQL)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       

 

           

 

      

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值