Hibernate缓存使用

一、定义

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

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

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

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

二、session缓存的作用

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

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

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

三、缓存使用

(1)session缓存的使用


Hibernate缓存使用_第1张图片

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


Hibernate缓存使用_第2张图片

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

(2)sessionFactory的使用

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

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


Hibernate缓存使用_第3张图片

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


Hibernate缓存使用_第4张图片

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


Hibernate缓存使用_第5张图片

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


Hibernate缓存使用_第6张图片

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

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


Hibernate缓存使用_第7张图片

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


Hibernate缓存使用_第8张图片

你可能感兴趣的:(Hibernate缓存使用)