·事务级缓存:当前事务范围内的数据缓存
·应用级缓存:某个应用中的数据缓存
·分布式缓存:多个应用,多个JVM之间共享缓存。分布式缓存由多个应用级缓存实例组成集群,通过某种远程机制实现各个缓存实例之间的数据同步,任何一个实例的 数据修改后,将导致整个集群间的数据状态同步。
2 一级缓存
load(get)查询数据步骤: 1查询一级缓存
2 一级缓存没有数据,发送SQL,有数据返回数据
3 写入一级缓存
Iterator查询数据步骤: 1 发送查询id的sql 2 根据id查询缓存 3 如果缓存中有数据,直接取出,如果没有去数据库中查询,并写入一级缓存
3 二级缓存
二级缓存属于应用级缓存,集群性缓存
定义步骤:
1、打开缓存,在hibernate.cfg.xm中加入: <property name="hibernate.cache.use_second_level_cache">true</property> 2、指定缓存策略提供商,在hibernate.cfg.xm中加入: <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> 3、拷贝echcahe.xml到src下,可以针对不同的策略配置缓存 4、指定那些类使用缓存(两种方式) <class-cache class="com.gzl.po.Dept usage="read-only"/>
* 在hibernate.cfg.xml
* 在映射文件中
load(get)查询数据步骤: 1查询一级缓存 如果没有数据,查询二级缓存 2 二级缓存也没有数据 去数据库查找,如果有会拷贝到一级缓存 3 写入一级缓存 4 拷贝到二级缓存
4 查询缓存
* 在程序中必须手动启用查询缓存,如: query.setCacheable(true);
|
|
来自: 昵称21365845 > 《Hibernate相关》