一、定义:
二级缓存是进程或集群范围内的缓存,可以被所有的Session共享,是可配置的插件
二、二级缓存原理图
解析:每次从二级缓存中取出的对象,都是一个新的对象。
三、配置步骤如下:
同理:以员工类和部门类为例
① 引入jar包
② 关键点:
大配置Hibernate.cfg.xml开启二级缓存
③ 在src下添加ehcache.xml文件,从etc获取文件即可。
④测试二级缓存(数据散装的特点)
public class Test1 {Session session;Transaction tx; Session session2;Transaction tx2;@Afterpublic void afterTest(){tx.commit();HibernateUtil.CloseSession();}@Beforepublic void initData(){session=HibernateUtil.getSession();tx=session.beginTransaction();}/** 二级缓存*/@Testpublic 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("=========================");}
输出结果如下:
注:一级缓存保存的是内存对象的引用,二级缓存中数据散装,需重新封装新的对象,所以两个内存地址不同