Hibernate中的缓存机制

Hibernate中的缓存机制
	1. 一级缓存
		自带无需任何设置,Session级别的缓存,只能在同一个Session对象中使用。在调用evict(Object)和clear()时会清除一级缓存。

		测试:
			@Test
			public void oneCache() {
			   	News news = session.get(News.class, 3);
			   	News news4 = session.get(News.class, 4);
			   	System.out.println("第一次查询:"+news+"--"+news4);
			   	
			   	//session.clear();
			   	//清除所有的 session
			   	session.evict(news4);
			   	//只清除当前 session
			   	
				News news1 = session.get(News.class, 3);
				News news14 = session.get(News.class, 4);
			   	System.out.println("第二次查询:"+news1+"--"+news14);
			}
	2. 二级缓存
		* 由同一个SessionFactory创建的不同的Session之间共享的缓存,称为二级缓存。
		1. 设置二级缓存的类型
			* 引入二级缓存依赖的包
				lib\optional\ehcache 下所有的 jar 包
					ehcache-2.10.1.jar
					hibernate-ehcache-5.1.6.Final.jar
					slf4j-api-1.7.7.jar
			* 在全局配置文件中设置二级缓存的类型
			   <!-- 设置二级缓存 -->
			   <property name="hibernate.cache.region.factory_class">
			      org.hibernate.cache.ehcache.EhCacheRegionFactory
			   </property>
		2. 在映射文件中设置缓存的只读性
			<cache usage="read-only"/>
		3. 测试:
			@Test
			public void Cache() {
			   	News news = session.get(News.class, 3);
			   	System.out.println("第一次查询:"+news);
			   	session.close();
			   	
				News news1 = session1.get(News.class, 3);
			   	System.out.println("第二次查询:"+news1);
			   	session1.close();
			}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值