1、定义:缓存
二级缓存是进程或集群范围内的缓存,能够被全部的Session共享,是可配置的插件session
2、二级缓存原理图测试
解析:每次从二级缓存中取出的对象,都是一个新的对象。spa
3、配置步骤以下:插件
同理:以员工类和部门类为例code
① 引入jar包xml
② 关键点:对象
大配置Hibernate.cfg.xml开启二级缓存blog
③ 在src下添加ehcache.xml文件,从etc获取文件便可。进程
④测试二级缓存(数据散装的特色)
public class Test1 { Session session; Transaction tx; Session session2; Transaction tx2; @After public void afterTest(){ tx.commit(); HibernateUtil.CloseSession(); } @Before public void initData(){ session=HibernateUtil.getSession(); tx=session.beginTransaction(); } /* * 二级缓存 */ @Test public void twoTest(){ session=HibernateUtil.getSession(); tx=session.beginTransaction(); Emp emp=(Emp)session.get(Emp.class, 2); System.out.println(emp); tx.commit(); System.out.println("========================"); Emp emp2=(Emp)session.get(Emp.class, 2); System.out.println(emp2); System.out.println("========================"); session2=HibernateUtil.getSession(); tx2=session2.beginTransaction(); Emp emp3=(Emp)session2.get(Emp.class, 2); System.out.println(emp3); tx2.commit(); System.out.println("========================="); }
输出结果以下:
注:一级缓存保存的是内存对象的引用,二级缓存中数据散装,需从新封装新的对象,因此两个内存地址不一样