zoukankan      html  css  js  c++  java
  • 第四讲 Hibernate 缓存管理

    缓存原理?

    将一些重要的、核心数据加载到内存中,存放起来;当应用程序需要访问该数据时,直接从内存中获取该数据;(从内存中获取数据,而不是从磁盘上读取数据)

     

    Hibernate中的缓存管理:

    Hibernate中缓存分为:一级缓存(Session缓存)、二级缓存(SessionFactory缓存)。

    一级缓存(Session缓存)由Hibernate自带。

    特点:

    1. 必须使用。

    2. session关闭的时候,缓存自动清空。

    3. 手动清除缓存。(clear()——清除所有session中的缓存;evict(Object obj)——清除指定的对象; flush() —— 刷新缓存)

     

    二级缓存(SessionFactory缓存)Hibernate提供支持的接口(外部缓存库)。

    特点:

    1. 所有用户可以共享数据。(跟具体的session对象无关)

    2. 消耗更多的内存资源。

    3. 查询速度变快、修改时(增、删、改)需要维护缓存和数据库。

     

    如何使用二级缓存(步骤)(EHCache缓存):

    1. 修改hibernate.cfg.xml配置文件。(指定缓存插件、启动二级缓存功能)

     

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

     

    1. 在src目录下,创建EHCache缓存的配置文件(ehcache.xml)。

     

    2. 在*.hbm.xml配置文件中,添加<cache usage="read-write"/>。

     

     

     

    注意:

    清除二级缓存中的对象:
    //清除所有类型
    HibernateSessionFactory.getSessionFactory().evict(Emp.class);
    
    //清除指定对象
    HibernateSessionFactory.getSessionFactory().evict(Emp.class, 1);
    
    //清除集合中的所有对象
    HibernateSessionFactory.getSessionFactory().evictCollection("com.zuxia.entity.Dept.emps");
    时间到达时,自动清除对象:
    <defaultCache maxElementsInMemory="500" eternal="false"
    timeToIdleSeconds="时间" timeToLiveSeconds="时间" overflowToDisk="true" />
    当时间到达时,自动清除对象;eternal="false"必须为false才有效。
    HQL语句默认不会执行缓存查询:
    <property name="cache.use_query_cache">true</property>
    查询时,调用Query中setCacheable(true)方法进行缓存查询。
    注意:根据HQL查询语句,缓存对象。(两条语句相同时,才能执行查询缓存)

     

  • 相关阅读:
    Power BI for Office 365(八)共享查询
    Power BI for Office 365(七) Power BI站点
    Power BI for Office 365(六)Power Map简介
    Power BI for Office 365(五)Power View第二部分
    Power BI for Office 365(四)Power View第一部分
    Power BI for Office 365(三)Power Pivot
    Power BI for Office 365(二)Power Query
    java 继承、重载、重写与多态
    Android 热修复方案Tinker(一) Application改造
    阿里最新热修复Sophix与QQ超级补丁和Tinker的实现与总结
  • 原文地址:https://www.cnblogs.com/lljj/p/Hibernate04.html
Copyright © 2011-2022 走看看