您的位置:首页 > 其它

Hibernate的缓存机制

2017-02-19 16:31 232 查看

缓存

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

数据存到内存里面,不需要使用流的方式,可以直接读取内存数据

把数据放到内存中,提高读取效率

Hibernate 缓存

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

hibernate 缓存特点

第一类:一级缓存

hibernate默认打开一级缓存

一级缓存使用范围:session范围,从session创建到session关闭

hibernate一级缓存中,存储的数据必须是持久态数据(实体类有3中状态)

第二类:二级缓存

目前已经不使用,替代技术redis

默认不打开

使用范围,是sessionFactory范围

验证一级缓存方式

根据id重复查询(根据是否发送sql语句)

//第一次查询
User user1 = session.get(User.class, 2)
4000
;
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一级缓存特性

持久态会自动更新数据库

执行原理

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate