hibernate中的缓存的分类及执行过程
来源:互联网 发布:php小炒花生米 编辑:程序博客网 时间:2024/06/07 05:38
一级缓存:属于事务范围的缓存。缓存的生命周期对应事务的生命周期。session缓存被称为hibernate的一级缓存。
作用:减少访问数据库的频率。
详细介绍在这篇文章中有详细的介绍:点击打开链接
二级缓存:属于进程范围内的缓存,缓存的生命周期,对应hibernate应用程序的生命周期。sessionFactory缓存分为内置缓存和外置缓存,内置自带,外置是一个可配置的缓存插件。
执行过程:
1.hibernate在根据OID查询时,会先查询session缓存中是否存在记录,如果不存在,并且程序中配置了二
级缓存,就会去二级缓存中查找数据,如果二级缓存也查不到就会发送sql语句去数据库中查,查到数据后,
将该条记录放入二级缓存中。
步骤一:挑选合适的二级缓存插件继承到应用程序中。(以EHcache插件为例)
点击下载相关文件:点击打开链接
步骤二:将commons-logging-1.1.1放入WebRoot\WEB-INF\lib。
步骤三:开启二级缓存。Hibernate.cfg.xml开启
<!--开启二级缓存--><propertyname="hibernate.cache.use_second_level_cache">true</property>
步骤四:指定二级缓存产品提供商
<!--指定二级缓存使用的插件--><propertyname="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
在该实体类的xx.hbm.xml文件中添加在class内设置(此处以)
<cache usage="read-write" region="com.bean.Emp"/>
三级缓存:查询缓存(相关配置在上图有显示)
步骤一:先配置二级缓存。
步骤二:在hibernate中开启查询缓存
步骤三:使用query对象在程序中手动启用查询缓存
二级缓存的应用场景:
什么时候使用二级缓存?
1.很少被修改的数据。
2.不是很重要,但经常被访问。
3.数量有限的数据
什么时候不需要使用二级缓存
1.经常被修改的数据
2.财务等敏感数据
3.与其他应用程序共享的数据
作用范围:
事务范围:只能被当前事务访问。
进程范围:进程内的所有事务共享缓存,进程结束,缓存结束。
集群范围:在一个机器或者多个机器进程共享。
- hibernate中的缓存的分类及执行过程
- Hibernate缓存分类,范围及管理配置
- Hibernate的执行过程
- memcached缓存的执行过程
- Hibernate缓存分类
- Hibernate中执行存储过程的方法
- hibernate的一次简单执行过程
- Java中的代码块分类及执行顺序
- Hibernate 性能优化及缓存的使用
- 机器学习的分类及过程
- Hibernate执行过程
- hibernate中的session缓存的常用方法
- Hibernate中的Session对象的一级缓存
- Hibernate中一级缓存、二级缓存及查询缓存的总结
- Hibernate中一级缓存、二级缓存及查询缓存的总结
- Hibernate Session篇--Hibernate的缓存及对象的状态
- Hibernate Session篇--Hibernate的缓存及对象的状态
- hibernate的二级缓存及hibernate 的查询缓存
- 对表格和表单的介绍,标签嵌套原则。
- QT类学习系列(4)- 01-QUdpSocket
- ADV-78-算法提高-最长单词
- 动态规划2
- Tarjan
- hibernate中的缓存的分类及执行过程
- 聚类
- lua-精灵的创建
- TextView的字体颜色设置
- cdh
- 八大排序
- C++的回调函数的简单实现
- Uva129_构造困难的字符串
- 写给初学者07_android_Layout_一些不常用的布局方式_绝对、表格布局