Hibernate缓存-创新互联

一、Hibernate缓存概述

Hibernate中提供两个级别的缓存,一级缓存和二级缓存。

创新互联主营钟山网站建设的网络公司,主营网站建设方案,App定制开发,钟山h5微信平台小程序开发搭建,钟山网站营销推广欢迎钟山等地区企业咨询

1.一级缓存是Session级别的缓存,它属于事物范围的缓存,一级缓存有hibernate进行管理。

2.二级缓存是sessionFactory级别的缓存,它属于进程范围的缓存,二级缓存又可分为"内置缓存"和"外置缓存",内置缓存:是hibernate在创建sessionFactory时会加载.hbn.xml文件并会在内存中初始化一些默认的sql语句,该内置缓存是只读的;外置缓存(二级缓存),默认sessionFactory不会启动这个缓存插件,外置缓存中的数据是数据库中数据的复制,存储的物理介质可以是内存或者硬盘。

二、Hibernate一级缓存

session的缓存有两大作用:

1.减少访问数据库的频率。

2.保证数据库中的相关记录与缓存中的相关对象保持一致。

Session根据脏对象的最新属性执行相关SQL语句,从而保证了数据库中的相关记录与缓存中的响应对象的同步,默认在如下时间点,session会清理缓存:

1.应用程序调用Transaction的commit()方法时,commit()会先清理缓存,再向数据库提交事务。

2.应用程序执行一些查询操作,缓存中的持久化对象的属性发生变化时。

3.显式调用Session的flush()方法。

Session提供了两个管理缓存的方法:

1.evict(Object obj);从缓存中清除特定持久化对象。

2.clear();清空缓存中,所有持久化对象。

三、Hibernate二级缓存

1. 使用 Hibernate 二级缓存的步骤:

1). 加入二级缓存插件的 jar 包及配置文件:

I. 复制 \hibernate-release-4.2.4.Final\lib\optional\ehcache\*.jar 到当前 Hibrenate 应用的类路径下.
II. 复制 hibernate-release-4.2.4.Final\project\etc\ehcachexml 到当前 WEB 应用的类路径下

2). 配置 hibernate.cfg.xml下载

I. 配置启用 hibernate 的二级缓存
true

II. 配置hibernate二级缓存使用的产品
org.hibernate.cache.ehcache.EhCacheRegionFactory

III. 配置对哪些类使用 hibernate 的二级缓存


实际上也可以在 .hbm.xml 文件中配置对哪些类使用二级缓存, 及二级缓存的策略是什么.下载

2). 集合级别的二级缓存的配置

I. 配置对集合使用二级缓存

也可以在 .hbm.xml 文件中进行配置







II. 注意: 还需要配置集合中的元素对应的持久化类也使用二级缓存! 否则将会多出 n 条 SQL 语句.

3). ehcache 的 配置文件: ehcache.xml

4). 查询缓存: 默认情况下, 设置的缓存对 HQL 及 QBC 查询时无效的, 但可以通过以下方式使其是有效的

I. 在 hibernate 配置文件中声明开启查询缓存

true

II. 调用 Query 或 Criteria 的 setCacheable(true) 方法
@Test
public void testQueryCache(){
Query query = session.createQuery("FROM Employee");
query.setCacheable(true);

List emps = query.list();
System.out.println(emps.size());

emps = query.list();
System.out.println(emps.size());

Criteria criteria = session.createCriteria(Employee.class);
criteria.setCacheable(true);
}
III. 查询缓存依赖于二级缓存(使用查询缓存的前提是配置hibernate二级缓存)

示例:下载


另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:Hibernate缓存-创新互联
链接分享:http://pwwzsj.com/article/phoii.html