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


相关文章
|
8月前
|
存储 SQL 缓存
MyBatis一级缓存 二级缓存
MyBatis一级缓存 二级缓存
65 0
|
4月前
|
缓存 Java 数据库连接
Mybatis中一级缓存和二级缓存使用详解
Mybatis中一级缓存和二级缓存使用详解
58 0
|
6月前
|
缓存 Java 数据库连接
mybatis之一级缓存和二级缓存~
mybatis之一级缓存和二级缓存~
|
8月前
|
SQL XML 缓存
mybatis的一级缓存和二级缓存
mybatis的一级缓存和二级缓存
88 0
|
8月前
|
存储 SQL 缓存
mybatis中一级缓存和二级缓存
mybatis中一级缓存和二级缓存
64 0
|
SQL 存储 缓存
Hibernate 一二级缓存
Hibernate 一二级缓存
Hibernate 一二级缓存
|
存储 SQL 缓存
【Mybatis】(四)一级缓存和二级缓存
【Mybatis】(四)一级缓存和二级缓存
165 0
|
SQL 缓存 JavaScript
Hibernate的一级缓存
缓存将数据库/硬盘上文件中数据,放入到缓存中(就是内存中一块空间).当再次使用的使用,可以直接从内存中获取.
97 0
Hibernate的一级缓存
|
缓存 Java 数据库连接
Hibernate的一级缓存和二级缓存(七)
Hibernate的一级缓存和二级缓存(七)
131 0
Hibernate的一级缓存和二级缓存(七)