Hibernate的缓存机制

来源:互联网 发布:如何找pdf 知乎 编辑:程序博客网 时间:2024/06/07 11:13

缓存

  1. 数据存到数据库里,数据库本身是文件系统,使用流方式操作文件效率低;

    • 数据存到内存里面,不需要使用流的方式,可以直接读取内存数据
    • 把数据放到内存中,提高读取效率

Hibernate 缓存

  1. hibernate 框架中提供多种优化方式,其中缓存机制就是其一
  2. hibernate 缓存特点

    第一类:一级缓存

    • hibernate默认打开一级缓存
    • 一级缓存使用范围:session范围,从session创建到session关闭
    • hibernate一级缓存中,存储的数据必须是持久态数据(实体类有3中状态)

    第二类:二级缓存

    • 目前已经不使用,替代技术redis
    • 默认不打开
    • 使用范围,是sessionFactory范围

验证一级缓存方式

  1. 根据id重复查询(根据是否发送sql语句)
//第一次查询User user1 = session.get(User.class, 2);System.out.println(user1);//第二次查询User user2 = session.get(User.class, 2);System.out.println(user2);/*    -- 执行结果    -- 第一次查询:hibernate底层会发送sql语句到数据库查询数据    -- 第二次查询:hibernate不会通过sql语句查询,而是根据缓存的内容返回    Hibernate:     select        user0_.uid as uid1_0_0_,        user0_.username as username2_0_0_,        user0_.password as password3_0_0_,        user0_.address as address4_0_0_     from        t_user user0_     where        user0_.uid=?    User [uid=2, username=李白, password=123456, address=广东广州]    User [uid=2, username=李白, password=123456, address=广东广州]*/

一级缓存的执行过程

一级缓存

hibernate一级缓存特性

  1. 持久态会自动更新数据库

  2. 执行原理
    自动更新数据库

0 0
原创粉丝点击