Hibernate ------ 缓存的理解

为什么hibernate有缓存的机制?

hibernate框架作为一个连接着application和database的框架,他需要频繁对物理数据库进行访问。

当我们在内存中创建一个缓存的时候,把一些特殊的物理数据库中的数据copy到缓存中,当application进行某些操作的时候,会先在缓存中找是否有想要的结果,有就拿来用,不需要对底层的物理数据库进行操作。这样增加整体的性能。

因此需要缓存这个机制。

同理,它类似于我们用电脑访问某个网站的时候,输入域名类似“zhisje.com”后,怎么解析成相应的ip并且发给了相应的服务器的呢?浏览器会先向本地的DNS服务器发送一个查询请求,本地的DNS如果有对象的缓存就会找到对应的IP返回。如果没有会像根DNS服务器发送查询请求。


hibernate


4.如何证明一级缓存的存在?

4.1. 通过第一次查询的结果会放在session缓存中,再次查询直接从缓存中查询的原理。

创建一个session对象,对该对象进行两次查询,观察一共在后台发了几条sql语句即可。


输出结果只有一个select语句



4.2 保存一个对象后,再次读取该数据也是从他的缓存中读取的。



5.一级缓存中的快照机制。

在内存中把缓存区复制一份给快照区,但执行sql语句的时候是更新了缓存区的内容,当commit的时候,hibernate会去比较快照区和缓存区是否一致,不一直就都更新为缓存区的内容。


6.缓存何时被清空?



7.缓存是如何工作的?

什么时候进行数据的提交工作。

有两个函数。flush()和commit()函数。

详解请参考:https://blog.csdn.net/qq_36098284/article/details/80094943



      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值