Java--Hibernate(一级缓存)

什么是缓存?

并不是指计算机的内存或者CPU的一二级缓存

缓存是指为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能的一种策略.

简单说:就是如何更快的检索数据库 查到想要的数据的策略

为了提高效率而存在的

对物理数据源的复制  复制到内存中

图1

 

未命中的话 会复制进去

一、介绍一级缓存:

1.Hibernate一级缓存又称为"Session缓存","会话级缓存"

2.通过Session从数据库查询实体时把实体在内存中存储起来,下一次查询同一实体时不再从数据库获取,而是从内存中获取,这就是缓存

3.一级缓存的生命周期和Session相同;Session销毁,他也销毁

4.一级缓存中的数据可适用范围在当前会话之内

二、Hibernate一级缓存API:

一级缓存是Hibernate的默认缓存,无法取消,用两个方法管理:

1、evict():用于将某个对象从Session的一级缓存中清除。

2、clear():用于将一级缓存中的所有对象全部清除。

Ps:一级缓存也有些时候会对程序的性能产生影响。

数据库准备

 

方法一

 

结果

 

结论

 

第二个案例有点特殊

 

新工具类

 

 

方法2

 

 

 

方法3

 

 

方法4

 

 

// HQL查询后,查询结果会进入一级缓存中 但是查询不会使用一级缓存

// criteria=>会将查询结果放入缓存 查询也不会使用一级缓存 与HQL一致

}

// sql查询时,如果把查询结果封装到对象中,对象会放入一级缓存中

猜你喜欢

转载自www.cnblogs.com/kz2017/p/8932347.html
今日推荐