开发者社区> walb呀> 正文

Hibernate+EhCache初级应用

简介:
+关注继续查看
1.EhCache是什么
    EhCache是Hibernate的二级缓存技术之一,可以把查询出来的数据存储在内存或者磁盘,节省下次同样查询语句再次查询数据库,大幅减轻数据库压力;

2.EhCache的使用注意点
    当用Hibernate的方式修改表数据(save,update,delete等等),这时EhCache会自动把缓存中关于此表的所有缓存全部删除掉(这样能达到同步)。但对于数据经常修改的表来说,可能就失去缓存的意义了(不能减轻数据库压力);
3.EhCache使用的场合
    3.1比较少更新表数据
        EhCache一般要使用在比较少执行write操作的表(包括update,insert,delete等)[Hibernate的二级缓存也都是这样];
    3.2对并发要求不是很严格的情况
        两台机子中的缓存是不能实时同步的;
4.在项目做的实现
    4.1在工程的src目录下添加ehcache.xml文件,内容如下:
        
<?xml version="1.0" encoding="UTF-8"?>
        
<ehcache>    
            
<diskStore path="java.io.tmpdir" />
          
<defaultCache maxElementsInMemory="5"<!--缓存可以存储的总记录量-->
            eternal="false"
<!--缓存是否永远不销毁-->
            overflowToDisk="true"
<!--当缓存中的数据达到最大值时,是否把缓存数据写入磁盘-->
            timeToIdleSeconds="15"
<!--当缓存闲置时间超过该值,则缓存自动销毁-->
                timeToLiveSeconds="120"
<!--缓存创建之后,到达该缓存自动销毁-->
          />
        
</ehcache>
    4.2在Hibernate.cfg.xml中的mapping标签上面加以下内容:
        
<property name="show_sql">true</property>
        
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
        
<property name="hibernate.cache.use_query_cache">true</property>
    4.3在要缓存的bean的hbm.xml文件中的class标签下加入以下内容:
       
<cache usage="read-only" /><!--也可读写-->
    4.4创建DAO,内容如下:
        Session s = HibernateSessionFactory.getSession();
        Criteria c = s.createCriteria(Xyz.class);
        c.setCacheable(true);//这句必须要有
        System.out.println("第一次读取");
        List l = c.list();
        System.out.println(l.size());
        HibernateSessionFactory.closeSession();
        s = HibernateSessionFactory.getSession();
        c = s.createCriteria(Xyz.class);
        c.setCacheable(true);//这句必须要有
        System.out.println("第二次读取");
        l = c.list();
        System.out.println(l.size());
        HibernateSessionFactory.closeSession();
   4.5这时你会看到打印出来的信息为(表示第二次并没有去读库):
        第一次读取
        Hibernate: *******
        13
        第二次读取

        13

本文转自博客园沉睡森林@漂在北京的博客,原文链接:Hibernate+EhCache初级应用,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
hibernate学习笔记之一(上)
hibernate学习笔记之一(上)
51 0
hibernate学习笔记之一(下)
hibernate学习笔记之一(下)
46 0
【笔记06】Ehcache 缓存框架的使用
Ehcache 是一个纯 Java 的缓存框架。具有快速、精干等特点,是 Hibernate(一个持久层框架,类似 MyBatis) 中默认的 CacheProvider
48 0
Hibernate基础配置
@Entity @Table(name = "teacher") // 指定该类对应的表明 public class Teacher {// 实体与 private int id; private String ...
833 0
学习hibernate,这个系列很不错
从这里入,感谢作者啊。 看了很多资料,这个是最能让我入门的。感觉。 http://blog.csdn.net/yerenyuan_pku/article/details/52745486
678 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载