加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Hibernate中的一级缓存

发布时间:2020-12-14 06:27:18 所属栏目:Java 来源:网络整理
导读:HibernateTest.java 代码: Session session= Guestbook gb=(Guestbook)session.get(Guestbook. ,2 Guestbook gb2=(Guestbook)session.get(Guestbook. ,2 System.out.println(gb== } 运行效果: 我们会看到,这里只用了一条select语句。但是我们读的是两条记

HibernateTest.java

代码:

Session session= Guestbook gb=(Guestbook)session.get(Guestbook.,2 Guestbook gb2=(Guestbook)session.get(Guestbook.,2 System.out.println(gb== }

运行效果:

我们会看到,这里只用了一条select语句。但是我们读的是两条记录啊!

为什么会出现这种情况呢?

这是因为 Hibernate使用了一级缓存,一级缓存又叫Session缓存

在一个会话的生命期里面,他所用到的数据会使用缓冲的,第一次读的是编号为2的数据记录

第一次读的时候,内存中什么都没有,这时候就要用一条select语句从数据库中读出一条记录,同时把这些数据放到session的缓存

里面,接下来又要读同样的数据,这时候他就不会再向数据库读取数据,而是向缓存中读取数据。

得到这个对象,把这个对象返回,所以我们看到一条select语句

Sysout(true);即:gb=gb2

log4j:WARN No appenders could be found =?

Session session= Guestbook gb=(Guestbook)session.get(Guestbook.,2 session= Guestbook gb2=(Guestbook)session.get(Guestbook.,2 System.out.println(gb== }

运行效果:

我们看到,我们要跟新两条记录,但是这里只是执行了一条update语句。

这是Hibernate利用缓存,用一个update就可以了。

log4j:WARN No appenders could be found =?=?

?HibernateTest.java

Session session= Guestbook gb=(Guestbook)session.get(Guestbook.,2 gb.setName("Hongtenzone@foxmail.com" gb2.setEmail("Helloworld@sina.com" }

运行效果:

<div class="cnblogs_code">

log4j:WARN No appenders could be found =?=?=?=?=?=?=?=?=?=?

代码:

Session session= Guestbook gb=(Guestbook)session.get(Guestbook.,2 Guestbook gb2=(Guestbook)session.get(Guestbook.,2 System.out.println(gb== }

运行效果:

log4j:WARN No appenders could be found =?

测试二:

HIbernateTest.java

代码:

Session session= Guestbook gb=(Guestbook)session.get(Guestbook.,3 Guestbook gb3=(Guestbook)session.get(Guestbook.,2 Guestbook gb4=(Guestbook)session.get(Guestbook.,3 System.out.println(gb== System.out.println(gb2== }

运行效果:

log4j:WARN No appenders could be found =?

测试三:

HibernateTest.java

代码:

Session session= Guestbook gb=(Guestbook)session.get(Guestbook.,3 }

运行效果:

log4j:WARN No appenders could be found =?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读