hibernate二级只读缓存设置 --oracle 是对sessionFactory而言的

来源:互联网 发布:模拟人生4作弊码mac 编辑:程序博客网 时间:2024/05/21 09:12

配置二级缓存的文件   hibernate.cfg.xml 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="">
  <!-- 配置oracle驱动 -->
  <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.password">123456</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
  <property name="hibernate.connection.username">scott</property>
  <!-- 方言 -->
  <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
  <!-- 输出打印sql语句 -->
  <property name="hibernate.show_sql">true</property>
  <!-- 配置session的获取方式 currentSession-->
  <property name="hibernate.current_session_context_class">thread</property>
  <!--     <property name="hibernate.use_sql_comments">true</property>
 sql语句格式化输出 -->
  <property name="hibernate.format_sql">true</property>
  <!-- 是否创建表 没有表-->

  <property name="hibernate.hbm2ddl.auto">update</property>


   <!-- 是否启用耳机缓存 -->
  <property name="hibernate.cache.use_second_level_cache">true</property>
 <!--  设置实现二级缓存的实现类 -->
  <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
 
  <!-- 注册实体的映射文件 -->
  <mapping resource="com/hu/po/HibernateUser.hbm.xml"/>
 <!--  设置启用二级缓存的实现类的只读(查询)缓存 -->

  <class-cache usage="read-only" class="com.hu.po.HibernateUser"/>


 </session-factory>

</hibernate-configuration>



ehcache.xml文件  项目路径

<ehcache>

 
    <diskStore path="./target/tmp"/>
<-- 这些数据是通过压力测试  负荷是运行负荷的一倍时测得的值-->
    <defaultCache
            maxElementsInMemory="10000"  
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="true"
            maxElementsOnDisk="10000000"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"
            />
            
            <!-- maxElementsInMemory  Cache中最多允许保存的数据对象的数量 -->
              <!-- external=“false” //缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期 -->
              <!-- timeToIdleSeconds=“1000”  //缓存数据钝化时间(设置对象在它过期之前的空闲时间)   -->
              <!-- timeToLiveSeconds=“1000” 缓存数据的生存时间(设置对象在它过期之前的生存时间)-->
              <!-- overflowToDisk=“false” />    //内存不足时,是否启用磁盘缓存   -->
              <!-- memoryStoreEvictionPolicy="LRU" //内存不足时数据对象的清除策略
                  ehcache中缓存的3种清空策略:
                 FIFO(first in first out):先进先出
                 LFU( Less Frequently Used):一直以来最少被使用的。如上面所讲,缓存的元素有一个hit属性,
                                             hit值最小的将会被清出缓存。
                 LRU(Least Recently Used):最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了 ,
                                             而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中
                                             时间戳离当前时间最远的元素将被清出缓存。
             -->
</ehcache>



文件路径

所需jar包



0 0
原创粉丝点击