hibernate的一级缓存、二级缓存

缓存:是一种优化的方式。将数据存入到内存中,使用的时候直接从缓存中获取,不通过存储源。

hibernate框架中提供了优化手段:缓存、抓取策略。hibernate提供了两种缓存机制。

一级缓存:

  • Session级别的缓存,一级缓存的生命周期与Session的生命周期一致。一级缓存是自带不可卸载的。缓存内部就是结合Session接口和java集合构成的。

  • 特点:

    • 当程序调用session接口的save(), update(), saveOrUpdate()时,如果session缓存中没有对象,hibernate就会自动把数据库中查询到的数据加入到一级缓存中。

    • 调用session接口的load(), get()方法,以及Query接口的list(), iteratir()方法时,会判断缓存中是否存在该对象,有则返回,没有就再去查数据库。

    • 调用session接口的close()方法时,缓存将清空。

二级缓存:用得少,不作要求。

一级缓存的内部结构:

  • 快照区(重要)

  • 缓存区

image.png

你可能感兴趣的:(hibernate的一级缓存、二级缓存)