hibernate缓存
--Session缓存(一级缓存,内置)
|
HIbernate缓存 |
--SessionFactory缓存(二级缓存、包含内置和外置)
内置和外置的界定:内置缓存只能存放在内存当中,外置缓存可以存储在硬盘等外部存储设备.
根据缓存的生命周期可分为三大范围:事物范围、应用范围、集群范围
Hibernate的缓存管理
一级缓存的管理:
evit(Object obj) 将指定的持久化对象从一级缓存中清除,释放对象所占用的内存资源,指定对象从持久化状态变为脱管状态,从而成为游离对象.
clear() 将一级缓存中的所有持久化对象清除,释放其占用的内存资源
contains(Object obj) 判断指定的对象是否存在于一级缓存中.
flush() 刷新一级缓存区的内容,使之与数据库数据保持同步.
二级缓存的管理:
evict(Class arg0, Serializable arg1) 将某个类的指定ID的持久化对象从二级缓存中清除,释放对象所占用的资源.
sessionFactory.evict(Customer.class, new Integer(1));
evict(Class arg0) 将指定类的所有持久化对象从二级缓存中清除,释放其占用的内存资源.
sessionFactory.evict(Customer.class);
evictCollection(String arg0) 将指定类的所有持久化对象的指定集合从二级缓存中清除,释放其占用的内存资源.
sessionFactory.evictCollection("Customer.orders");
常用的二级缓存插件
EHCache 、OSCache 、SwarmCahe 、JBossCache
下面这几种情况就不适合加载到二级缓存中:
1.经常被修改的数据
2.绝对不允许出现并发访问的数据
3.与其他应用共享的数据
下面这己种情况合适加载到二级缓存中:
1.数据更新频率低
2.允许偶尔出现并发问题的非重要数据
3.不会被并发访问的数据
4.常量数据
5.不会被第三方修改的数据
配置:
<hibernate-configuration>
<session-factory>
<!-- 设置二级缓存插件的Provider类-->
<property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property>
<!-- 启动"查询缓存" -->
<property name="hibernate.cache.use_query_cache">
true
</property>
</session-factory>
</hibernate-configuration>
<hibernate-mapping>
<class>
<!-- 设置该持久化类的二级缓存并发访问策略 read-only read-write nonstrict-read-write transactional-->
<cache usage="read-write"/>
</class>
</hibernate-mapping>
优点:Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架、分布式,安全检查,集群,
负载均衡的支持
传统的架构:
1) Session Bean <-> Entity Bean <-> DB
为了解决性能障碍的替代架构:
2) Session Bean <-> DAO <-> JDBC
你可能喜欢
- Hibernate缓存
- hibernate缓存机制
- JAVA编程题全集及答案
- 入门教程
- Java面试题
- Excel使用技巧大全(超
- 学习笔记
- Hibernate缓存14页
- Hibernate一二级缓存的比较1页
- Hibernate二级缓存攻略6页
- Hibernate二级缓存7页
- Hibernate缓存笔记2页
- Hibernate缓存机制4页
- hibernate缓存机制3页
- hibernate缓存机制详细分析18页
- hiberante面试题—hibernate缓存机制详解2页
- hibernate缓存机制2页
- 基于hibernate缓存机制的查询性能优化研究3页
- hibernate缓存机制15页
- 最新JAVA编程题全集(50题及答案)32页
- JAVA编程题全集(100题及答案)w13页
- 最新JAVA编程题全集(50题及答案)58页
- 最新JAVA编程题全集(50题及答案)32页
- 最新JAVA编程题全集(63题及答案)44页
- JAVA编程题全集(100题及答案)42页
- FPGA入门教程37页
- catia快速入门教程5页
- 鸿鹄论坛_黑客入门教程_基础_42页
- 电脑编程入门教程3页
- Java入门教程怎么向程序输入信息2页
- 单反摄影入门教程42页
- Java面试题大全及答案(归类)39页
- 1_Java面试题集(最全版)开发入门69页
- 各公司Java面试题汇总15页
- Java面试题24页
- Java面试题5页
- (J2EE方向)Java面试题集锦21页


