Hibernate缓存使用

一、定义

hibernate是一个使用较为广泛的ORM框架,主要原理是经过配置文件完成entry的属性对表的column之间的一一映射。

hibernate的一级缓存:Session的缓存。

hibernate的二级缓存:SessionFactory的外置缓存。

这两个缓存都是位于持久层(Dao)他们存放的都是数据库的数据备份。

二、session缓存的作用

1、减少数据库的访问频率,提高访问性能。

2、保证缓存中的数据和数据库数据的一致性。(缓存中的对象叫做持久化对象,快照机制可以检查缓存对象是否是最新数据)。

3、对象之间存在级联关系时保证不会出现对象图的死锁。

三、缓存使用

(1)session缓存的使用


当进行查询满足条件的数据时,需要的是首先查询一次list()------>从list中遍历出符合条件的(操作内存的速度比表的速度快的多,所以在很多分库分表场景中都是将数据放到内存中再去遍历查找(如:京东))。


当session.close()执行后session被关闭,一级缓存被关闭此时如果需要再次操作就需要使用二级缓存。

(2)sessionFactory的使用

配置二级缓存:1、hibernate并没有提供相应的二级缓存的组建,所以需要加入额外的二级缓存包,常用的二级缓存包EHcache。包位置:hibernate--->lib----->optional--->ehcache下可以找到。

                         2、在hibernate.cfg配置文件中配置我们的二级缓存的一些属性:(相关属性配置到<sessionFactory>标签内)


           3、对应的二级缓存ehcache.xml的配置


4、在对应的实体类种开启二级缓存


5、sessionFactory使用案例:注(二期缓存只是缓存的对象)


(3)三级缓存(又称查询缓存)注(查询缓存也是sessionFactory级别的缓存)

1、添加对应的查询缓存配置


2、查询缓存使用(针对HQL):使用时HQL查询语句完全相同,参数设置完全相同,此时缓存才可以生效。


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

推荐阅读更多精彩内容