Hibernate 缓存--笔记

 

一、hibernate内部的缓存的分析

1、  一级缓存Session级别的缓存

将数据放入缓存:Save(),update()….list()、 iterator()

从缓存取数据:get(),load()先去缓存中找对象数据,如果缓存中有对象直接返回该对象,如果缓存中没有该对象,从数据库中找对象

Query接口实现查询(list)不从缓存中提取数据

Criteria:不从存缓存中提取数据

Session.evict(object);//清除一级缓存中指定的对象

Session.clear();//清除一级缓存中的所有对象

一级缓存的缺陷:没有保护,共享范围小

2、  二级缓存SessionFactory

SessionFactory

在hibernate.cfg.xml配置二级缓存,主要告诉hibernate第三方缓存的提供者谁

(1)cache.use_second_level_cache:true决定要不要打开二级缓存

这个属性的默认值就是true,该属性不配置也可以。

(2)cache.provider_class:cache的提供者是谁org.hibernate.cache.OSCacheProvider

需要将oscache需要的jar包构建到项目中

需要将oscache.properties拷贝src目录下

(3)<class-cache>:告诉hibernate哪些类对象需要放入缓存

方法一:<class-cache class="com.hbsi.domain.User" usage=""/>

usage:read-only效率最高,但是有一个限制

           read-write

           nonstrict-read-write

            transactional

方法二:在类的映射文件告诉hibernate

<class>

<cache usage="read-only"/>

...

</class>缓存的作用主要来提高性能,可以简单的理解为一个Map;使用

缓存涉及到的三个操作:把

posted @ 2011-12-16 12:19  Springside4  阅读(116)  评论(0编辑  收藏  举报