Hibernate 二级缓存

Hibernate二级缓存
1. 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">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

<session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="show_sql">true</property>
<property name="connection.url">
</property>
<property name="connection.username"></property>
<property name="connection.password"></property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">Oralce</property>
<property name="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</property>
<!-- 添加缓存拆建的接口实现类 -->
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- 设置应用查询缓存 -->
<property name="hibernate.cache.use_query_cache">true</property>

<mapping resource="com/lht/po/VerranCust.hbm.xml" />
<mapping resource="com/lht/po/VerranOrder.hbm.xml" />


</session-factory>

</hibernate-configuration>

2. ehcache.xml


<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd">

<diskStore path="C:\\cache"/>
<!-- 配置全局监听器 -->
<cacheManagerEventListenerFactory
class="com.lht.ehcache.listener.EcacheListenerFactory"/>


<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>

<cache name="com.lht.po.VerranCust"
maxElementsInMemory="300"
eternal="true"
overflowToDisk="false"
/>

<cache name="com.lht.po.VerranOrder"
maxElementsInMemory="300"
eternal="true"
overflowToDisk="false"
/>

<cache name="Test"
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="2"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LRU">
<!-- 配置特定缓存的监听器 -->
<cacheEventListenerFactory
class="com.lht.ehcache.listener.EcacheSingleListenerFactory">
</cacheEventListenerFactory>
</cache>

<!-- 设置默认的查询缓存的数据过期策略 -->
<cache name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="50" eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="7200"
overflowToDisk="true"
/>

<!-- 设置时间戳缓存的数据过期策略 -->
<cache name="org.hibernate.cache.UpdateTimestampsCache"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="true"
/>

<!-- 设置自定义命名查询缓存customerQueries的数据过期策略 -->
<cache name="myCacheRegion"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="true"
/>


</ehcache>


3. 测试代码
public static void main(String[] args) {

// TODO Auto-generated method stub
HibernateTest test=new HibernateTest();
for (int i=0;i<10;i++){
System.out.println("第"+(i+1)+"次");
TestTimer timer = new TestTimer("testGetCountries");
test.testFind();
timer.done();
}
}

4. 结果

log4j:WARN [g:stdout.log] should be System.out or System.err.
log4j:WARN Using previously set target, System.out by default.
10:31:34,625 DEBUG BaseDAO:29 - 开始创建session
10:31:34,781 INFO HibernateSession:37 - sessionfactory is null 开始创建----
10:31:36,046 DEBUG CacheManager:239 - Configuring ehcache from classpath.
10:31:36,046 DEBUG ConfigurationFactory:122 - Configuring ehcache from ehcache.xml found in the classpath: file:/C:/Documents%20and%20Settings/cattsoft/%e6%a1%8c%e9%9d%a2/BSS/CacheStudy/bin/ehcache.xml
10:31:36,046 DEBUG ConfigurationFactory:87 - Configuring ehcache from URL: file:/C:/Documents%20and%20Settings/cattsoft/%e6%a1%8c%e9%9d%a2/BSS/CacheStudy/bin/ehcache.xml
10:31:36,046 DEBUG ConfigurationFactory:139 - Configuring ehcache from InputStream
10:31:36,062 DEBUG BeanHandler:213 - Ignoring ehcache attribute xmlns:xsi
10:31:36,062 DEBUG BeanHandler:213 - Ignoring ehcache attribute xsi:noNamespaceSchemaLocation
10:31:36,062 DEBUG DiskStoreConfiguration:65 - Disk Store Path: C:\\cache
10:31:36,093 DEBUG PropertyUtil:86 - propertiesString is null.
10:31:36,093 INFO EcacheListenerFactory:18 - ecache 监听工厂
10:31:36,093 DEBUG ConfigurationHelper:183 - No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener.
10:31:36,093 DEBUG ConfigurationHelper:159 - No CachePeerProviderFactoryConfiguration specified. Not configuring a CacheManagerPeerProvider.
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,218 DEBUG PropertyUtil:86 - propertiesString is null.
10:31:36,218 INFO EcacheSingleListenerFactory:16 - 监听单element
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,218 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping...
10:31:36,234 DEBUG DiskStore:182 - Deleting data file org.hibernate.cache.UpdateTimestampsCache.data
10:31:36,250 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for org.hibernate.cache.UpdateTimestampsCache
10:31:36,250 DEBUG LruMemoryStore:71 - org.hibernate.cache.UpdateTimestampsCache Cache: Using SpoolingLinkedHashMap implementation
10:31:36,250 DEBUG Cache:429 - Initialised cache: org.hibernate.cache.UpdateTimestampsCache
10:31:36,250 INFO EcacheListener:35 - start adding=============缓存名称为=org.hibernate.cache.UpdateTimestampsCache
10:31:36,250 DEBUG DiskStore:182 - Deleting data file Test.data
10:31:36,250 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for Test
10:31:36,250 DEBUG LruMemoryStore:71 - Test Cache: Using SpoolingLinkedHashMap implementation
10:31:36,265 DEBUG Cache:429 - Initialised cache: Test
10:31:36,265 INFO EcacheListener:35 - start adding=============缓存名称为=Test
10:31:36,265 DEBUG DiskStore:182 - Deleting data file org.hibernate.cache.StandardQueryCache.data
10:31:36,265 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for org.hibernate.cache.StandardQueryCache
10:31:36,265 DEBUG LruMemoryStore:71 - org.hibernate.cache.StandardQueryCache Cache: Using SpoolingLinkedHashMap implementation
10:31:36,265 DEBUG Cache:429 - Initialised cache: org.hibernate.cache.StandardQueryCache
10:31:36,265 INFO EcacheListener:35 - start adding=============缓存名称为=org.hibernate.cache.StandardQueryCache
10:31:36,265 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for com.lht.po.VerranOrder
10:31:36,265 DEBUG LruMemoryStore:71 - com.lht.po.VerranOrder Cache: Using SpoolingLinkedHashMap implementation
10:31:36,265 DEBUG Cache:429 - Initialised cache: com.lht.po.VerranOrder
10:31:36,265 INFO EcacheListener:35 - start adding=============缓存名称为=com.lht.po.VerranOrder
10:31:36,265 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for com.lht.po.VerranCust
10:31:36,265 DEBUG LruMemoryStore:71 - com.lht.po.VerranCust Cache: Using SpoolingLinkedHashMap implementation
10:31:36,265 DEBUG Cache:429 - Initialised cache: com.lht.po.VerranCust
10:31:36,265 INFO EcacheListener:35 - start adding=============缓存名称为=com.lht.po.VerranCust
10:31:36,265 DEBUG DiskStore:182 - Deleting data file myCacheRegion.data
10:31:36,265 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for myCacheRegion
10:31:36,265 DEBUG LruMemoryStore:71 - myCacheRegion Cache: Using SpoolingLinkedHashMap implementation
10:31:36,265 DEBUG Cache:429 - Initialised cache: myCacheRegion
10:31:36,265 INFO EcacheListener:35 - start adding=============缓存名称为=myCacheRegion
10:31:36,625 DEBUG DiskStore:182 - Deleting data file com.lht.po.VerranCust.verRanOrders.data
10:31:36,625 DEBUG MemoryStore:73 - Initialized net.sf.ehcache.store.LruMemoryStore for com.lht.po.VerranCust.verRanOrders
10:31:36,625 DEBUG LruMemoryStore:71 - com.lht.po.VerranCust.verRanOrders Cache: Using SpoolingLinkedHashMap implementation
10:31:36,625 DEBUG Cache:429 - Initialised cache: com.lht.po.VerranCust.verRanOrders
10:31:36,625 INFO EcacheListener:35 - start adding=============缓存名称为=com.lht.po.VerranCust.verRanOrders
10:31:36,765 INFO HibernateSession:40 - sessionfactory 创建完毕----
10:31:36,765 DEBUG BaseDAO:32 - session打开成功
第1次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,093 DEBUG MemoryStore:138 - com.lht.po.VerranCustCache: com.lht.po.VerranCustMemoryStore miss for com.lht.po.VerranCust#1000
10:31:37,093 DEBUG Cache:661 - com.lht.po.VerranCust cache - Miss
Hibernate: select verrancust0_.CUST_ID as CUST1_0_0_, verrancust0_.NAME as NAME0_0_, verrancust0_.STS as STS0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where verrancust0_.CUST_ID=?
10:31:37,140 INFO HibernateTest:71 - VerRan
10:31:37,140 DEBUG MemoryStore:138 - com.lht.po.VerranCust.verRanOrdersCache: com.lht.po.VerranCust.verRanOrdersMemoryStore miss for com.lht.po.VerranCust.verRanOrders#1000
10:31:37,140 DEBUG Cache:661 - com.lht.po.VerranCust.verRanOrders cache - Miss
Hibernate: select verranorde0_.ORDER_CUST_ID as ORDER4_1_, verranorde0_.ORDER_ID as ORDER1_1_, verranorde0_.ORDER_ID as ORDER1_1_0_, verranorde0_.ORDER_PRICE as ORDER2_1_0_, verranorde0_.ORDER_NAME as ORDER3_1_0_, verranorde0_.ORDER_CUST_ID as ORDER4_1_0_ from LUCITEST.VERRAN_ORDER verranorde0_ where verranorde0_.ORDER_CUST_ID=?
10:31:37,156 INFO HibernateTest:76 - bb
testGetCountries : 391 ms.
第2次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,156 INFO HibernateTest:71 - VerRan
10:31:37,156 INFO HibernateTest:76 - bb
testGetCountries : 0 ms.
第3次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,171 INFO HibernateTest:71 - VerRan
10:31:37,171 INFO HibernateTest:76 - bb
testGetCountries : 15 ms.
第4次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,171 INFO HibernateTest:71 - VerRan
10:31:37,171 INFO HibernateTest:76 - bb
testGetCountries : 0 ms.
第5次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,171 INFO HibernateTest:71 - VerRan
10:31:37,171 INFO HibernateTest:76 - bb
testGetCountries : 0 ms.
第6次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,187 INFO HibernateTest:71 - VerRan
10:31:37,187 INFO HibernateTest:76 - bb
testGetCountries : 16 ms.
第7次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,187 INFO HibernateTest:71 - VerRan
10:31:37,187 INFO HibernateTest:76 - bb
testGetCountries : 0 ms.
第8次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,187 INFO HibernateTest:71 - VerRan
10:31:37,187 INFO HibernateTest:76 - bb
testGetCountries : 0 ms.
第9次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,203 INFO HibernateTest:71 - VerRan
10:31:37,203 INFO HibernateTest:76 - bb
testGetCountries : 16 ms.
第10次
Hibernate: select verrancust0_.CUST_ID as col_0_0_ from LUCITEST.VERRAN_CUST verrancust0_ where (verrancust0_.CUST_ID=? )
10:31:37,203 INFO HibernateTest:71 - VerRan
10:31:37,203 INFO HibernateTest:76 - bb
testGetCountries : 0 ms.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值