【Hibernate】一级缓存

时间:2019-11-26 13:14:51   收藏:0   阅读:78

一、概述

二、证明Hibernate的一级缓存的存在

@Test
// 证明一级缓存的存在
public void demo3(){
    // 1.创建Session
    Session session = HibernateUtils.openSession();
    // 2.开启事务
    Transaction tx = session.beginTransaction();        
    // save方法可以向一级缓存中存放数据的.
    /*Book book = new Book();
    book.setName("JQuery开发");
    book.setAuthor("张XX");
    book.setPrice(45d);
    
    Integer id = (Integer) session.save(book);
    
    Book book2 = (Book) session.get(Book.class, id); 
    
    System.out.println(book2);*/
    
    // 分别用get执行两次查询.
    Book book1 = (Book) session.get(Book.class, 1);// 马上发生SQL去查询
    System.out.println(book1);
    
    Book book2 = (Book) session.get(Book.class, 1);// 不发生SQL,因为使用一级缓存的数据
    System.out.println(book2);
    
    // 3.提交事务
    tx.commit();
    // 4.关闭资源
    session.close();
}

三、一级缓存中快照区

@Test
    // 深入理解一级缓存结构:快照区:
    public void demo4(){
        // 1.创建Session
        Session session = HibernateUtils.openSession();
        // 2.开启事务
        Transaction tx = session.beginTransaction();
        
        // 获得一个持久态的对象.
        Book book = (Book) session.get(Book.class, 1);
        book.setName("Spring3开发");
        
        // 3.提交事务
        tx.commit();
        // 4.关闭资源
        session.close();
    }

四、管理一级缓存

五、Hibernate一级缓存的刷出时机

六、操作持久化对象的方法

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!