hibernate的一级缓存、二级缓存

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

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

一级缓存:

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

  • 特点:

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

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

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

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

一级缓存的内部结构:

  • 快照区(重要)

  • 缓存区

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。