• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP 开发之hibernate配置二级缓存的方法

    JSP 开发之hibernate配置二级缓存的方法

    hibernate二级缓存也称为进程级的缓存或SessionFactory级的缓存。

    二级缓存是全局缓存,它可以被所有的session共享。

    二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存。

    常用的缓存插件 Hibernater二级缓存是一个插件,下面是几种常用的缓存插件:

    如何在程序里使用二级缓存:

    首先在hibernate.cfg.xml开启二级缓存

    
    hibernate-configuration> 
      session-factory> 
    
       ...... 
    
       !-- 开启二级缓存 --> 
       property name="hibernate.cache.use_second_level_cache">true/property> 
       !-- 启动"查询缓存"如果想缓存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集,必须配置此项--> 
       property name="hibernate.cache.use_query_cache">true/property> 
       !-- 设置二级缓存插件EHCache的Provider类--> 
       !-- property name="hibernate.cache.provider_class"> 
         org.hibernate.cache.EhCacheProvider 
       /property> --> 
       !-- 二级缓存区域名的前缀 --> 
       !--property name="hibernate.cache.region_prefix">test/property>--> 
       !-- 高速缓存提供程序 --> 
       property name="hibernate.cache.region.factory_class"> 
         net.sf.ehcache.hibernate.EhCacheRegionFactory 
       /property> 
       !-- Hibernate4以后都封装到org.hibernate.cache.ehcache.EhCacheRegionFactory --> 
       !-- 指定缓存配置文件位置 --> 
       !-- property name="hibernate.cache.provider_configuration_file_resource_path"> 
         ehcache.xml 
       /property> --> 
       !-- 强制Hibernate以更人性化的格式将数据存入二级缓存 --> 
       property name="hibernate.cache.use_structured_entries">true/property> 
    
       !-- Hibernate将收集有助于性能调节的统计数据 --> 
       property name="hibernate.generate_statistics">true/property> 
    
       ...... 
    
      /session-factory> 
    /hibernate-configuration> 
    
    

    然后是ehcache配置(ehcache.xml)

    cache参数详解:

    ● name:指定区域名
    ● maxElementsInMemory :缓存在内存中的最大数目
    ● maxElementsOnDisk:缓存在磁盘上的最大数目
    ● eternal :设置是否永远不过期
    ● overflowToDisk : 硬盘溢出数目
    ● timeToIdleSeconds :对象处于空闲状态的最多秒数后销毁
    ● timeToLiveSeconds :对象处于缓存状态的最多秒数后销毁
    ● memoryStoreEvictionPolicy:缓存算法,有LRU(默认)、LFU、LFU

    关于缓存算法,常见有三种:

    ● LRU:(Least Rencently Used)新来的对象替换掉使用时间算最近很少使用的对象
    ● LFU:(Least Frequently Used)替换掉按命中率高低算比较低的对象
    ● LFU:(First In First Out)把最早进入二级缓存的对象替换掉

    Xml代码

    ?xml version="1.0" encoding="UTF-8"?> 
    ehcache> 
     !--如果缓存中的对象存储超过指定的缓存数量的对象存储的磁盘地址--> 
     diskStore path="D:/ehcache"/> 
    
     !-- 默认cache:如果没有对应的特定区域的缓存,就使用默认缓存 --> 
     defaultCache maxElementsInMemory="10000" 
            eternal="false" 
            timeToIdleSeconds="300"  
            timeToLiveSeconds="600" 
            overflowToDisk="false"/> 
     !-- 指定区域cache:通过name指定,name对应到Hibernate中的区域名即可--> 
     cache name="cn.javass.h3test.model.UserModel" 
            eternal="false" 
            maxElementsInMemory="100" 
            timeToIdleSeconds="1200" 
            timeToLiveSeconds="1200" 
            overflowToDisk="false"> 
     /cache> 
     /ehcache> 
    
    

    在每个实体的hbm文件中配置cache元素,usage可以是read-only或者是read-write等4种。

    Xml代码

    class> 
    !-- 设置该持久化类的二级缓存并发访问策略 read-only read-write nonstrict-read-write transactional--> 
        class name="cn.java.test.model.User" table="TBL_USER"> 
           cache usage="read-write"/> 
        ......  
      /class> 
    /hibernate-mapping> 
    
    **也可以用Hibernate注解配置缓存实体类** 
    
    **Java代码 
    @Entity  
    @Table  
    @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 
    public class User implements Serializable {  
      private static final long serialVersionUID = -5121812640999313420L; 
      private Integer id; 
      private String name; 
    
      ...... 
    }**
    
    

    以上就是hibernate 二级缓存的两种实现方法,本站关于JSP hibernate开发的文章还有很多,希望大家多多搜出查阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    您可能感兴趣的文章:
    • 详细解读Hibernate的缓存机制
    • hibernate查询缓存详细分析
    • 详解Hibernate注解方式的二级缓存
    • 详解spring boot集成ehcache 2.x 用于hibernate二级缓存
    • java中hibernate二级缓存详解
    • 详解Hibernate缓存与性能优化
    • Spring 整合 Hibernate 时启用二级缓存实例详解
    • Hibernate缓存机制实例代码解析
    上一篇:JSP 开发中过滤器filter设置编码格式的实现方法
    下一篇:Spring 事务隔离与事务传播的详解与对比
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP 开发之hibernate配置二级缓存的方法 JSP,开,发之,hibernate,配置,