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("=========================");
        }

    输出结果如下:

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

  • 相关阅读:
    some ideas
    zz 牛人啊
    zz 史上最全--各银行借记卡的年费、小额管理费、转账费等!
    哪裡可以買郵票
    : 求靠谱灭蟑螂的方法
    zz 【见闻八卦】《金融时报》年度商业书单:互联网题材占一半
    IOS开发基础知识--碎片6
    IOS开发基础知识--碎片5
    IOS开发基础知识--碎片4
    IOS中关于KVC与KVO知识点
  • 原文地址:https://www.cnblogs.com/WJ-163/p/5845446.html
Copyright © 2011-2022 走看看