zoukankan      html  css  js  c++  java
  • HIbernate二级缓存

    一、定义:

    二级缓存是进程或集群范围内的缓存,可以被所有的Session共享,是可配置的插件

    二、二级缓存原理图

    解析:每次从二级缓存中取出的对象,都是一个新的对象。

    三、配置步骤如下:

    同理:以员工类和部门类为例

    ① 引入jar包

    ② 关键点:

    大配置Hibernate.cfg.xml开启二级缓存

    ③ 在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("=========================");
        }
    复制代码

    输出结果如下:

    注:一级缓存保存的是内存对象的引用,二级缓存中数据散装,需重新封装新的对象,所以两个内存地址不同

  • 相关阅读:
    [HDU]1086You can Solve a Geometry Problem too
    [HDU]2161Primes
    [HDU]2098分拆素数和
    [HDU]1431素数回文
    [HDU]1527取石子游戏
    [HDU]2092整数解
    [HDU]1405The Last Practice
    [HDU]2565放大的X
    [HDU]1723Distribute Message
    [HDU]1208Pascal's Travels
  • 原文地址:https://www.cnblogs.com/jingpeipei/p/5848027.html
Copyright © 2011-2022 走看看