hibernate的一级缓存

简介: hibernate的一级缓存

hibernate的一级缓存就是指Session缓存

(1)hibernate的一级缓存默认打开的

(2)hibernate的一级缓存使用范围,是session范围,从session创建到session关闭范围


(3)hibernate的一级缓存中,存储数据必须 持久态数据



验证一级缓存的存在

image.png

第一步执行get方法之后,发送sql语句查询数据库

第二个执行get方法之后,没有发送sql语句,是直接从一级缓存里面查找内容,这样就省了很多时间。

Hibernate一级缓存执行过程:20180405231437823.png

Hibernate一级缓存特性: 持久态自动更新数据库20180405231710966.png

不需要用session的update方法就可以对数据库进行更新了。


持久态自动更新的过程:


在创建session的时候会出现一个一级缓存,同时也会产生一个快照区(副本),执行session.get方法时先在一级缓存区找有没有这个数据如果没有就去数据库查询,然后把持久态对象放到一级缓存和快照区,然后通过set*来修改持久态的值和一级缓存中的内容,但是不会修改快照区的内容,提交事物时进行比较,比较一级缓存区的内容和快照区的内容是否相同,不相同就把一级缓存中的内容更新到数据库,相同就不进行操作。微信图片_20221209211956.png


相关文章
|
5月前
|
缓存 NoSQL Java
揭秘性能提升的超级武器:掌握Hibernate二级缓存策略!
【9月更文挑战第3天】在软件开发中,性能优化至关重要。使用Hibernate进行数据持久化的应用可通过二级缓存提升数据访问速度。一级缓存随Session生命周期变化,而二级缓存是SessionFactory级别的全局缓存,能显著减少数据库访问次数,提高性能。要启用二级缓存,需在映射文件或实体类上添加相应配置。然而,并非所有场景都适合使用二级缓存,需根据业务需求和数据变更频率决定。此外,还可与EhCache、Redis等第三方缓存集成,进一步增强缓存效果。合理运用二级缓存策略,有助于大幅提升应用性能。
119 5
|
6月前
|
缓存 Java 数据库连接
Hibernate 中的查询缓存是什么?
【8月更文挑战第21天】
54 0
|
6月前
|
存储 缓存 Java
|
6月前
|
存储 缓存 Java
Hibernate 中默认启用二级缓存吗?
【8月更文挑战第21天】
52 0
|
6月前
|
存储 缓存 Java
Hibernate 中的二级缓存是什么?
【8月更文挑战第21天】
60 0
|
6月前
|
缓存 Java 数据库连接
Hibernate 中的一级缓存是什么?
【8月更文挑战第21天】
80 0
|
9月前
|
缓存 Java 数据库连接
hibernate二级缓存
在配置和使用Hibernate二级缓存时,你应该根据应用的需求和性能要求,合理选择缓存提供者和配置参数,以达到性能优化的目的。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
76 1
|
9月前
|
缓存 Java 数据库连接
Hibernate或MyBatis:ORM映射、缓存机制等知识讲解梳理
Hibernate或MyBatis:ORM映射、缓存机制等知识讲解梳理
151 0
|
9月前
|
缓存 Java 数据库连接
Hibernate - 查询缓存和时间戳缓存区域使用详解
Hibernate - 查询缓存和时间戳缓存区域使用详解
93 0
|
9月前
|
SQL 缓存 Java
Hibernate - 整合Ehcache二级缓存使用详解
Hibernate - 整合Ehcache二级缓存使用详解
89 0