<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    沉睡森林@漂在北京

    本處文章除注明“轉(zhuǎn)載”外均為原創(chuàng),轉(zhuǎn)載請注明出處。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      152 隨筆 :: 4 文章 :: 114 評論 :: 0 Trackbacks
    1.EhCache是什么
        EhCache是Hibernate的二級緩存技術(shù)之一,可以把查詢出來的數(shù)據(jù)存儲在內(nèi)存或者磁盤,節(jié)省下次同樣查詢語句再次查詢數(shù)據(jù)庫,大幅減輕數(shù)據(jù)庫壓力;

    2.EhCache的使用注意點
        當用Hibernate的方式修改表數(shù)據(jù)(save,update,delete等等),這時EhCache會自動把緩存中關(guān)于此表的所有緩存全部刪除掉(這樣能達到同步)。但對于數(shù)據(jù)經(jīng)常修改的表來說,可能就失去緩存的意義了(不能減輕數(shù)據(jù)庫壓力);

    3.EhCache使用的場合
        3.1比較少更新表數(shù)據(jù)
            EhCache一般要使用在比較少執(zhí)行write操作的表(包括update,insert,delete等)[Hibernate的二級緩存也都是這樣];
        3.2對并發(fā)要求不是很嚴格的情況
            兩臺機子中的緩存是不能實時同步的;

    4.在項目做的實現(xiàn)
        4.1在工程的src目錄下添加ehcache.xml文件,內(nèi)容如下:
            
    <?xml version="1.0" encoding="UTF-8"?>
            
    <ehcache>    
                
    <diskStore path="java.io.tmpdir" />
              
    <defaultCache maxElementsInMemory="5"<!--緩存可以存儲的總記錄量-->
                eternal="false"
    <!--緩存是否永遠不銷毀-->
                overflowToDisk="true"
    <!--當緩存中的數(shù)據(jù)達到最大值時,是否把緩存數(shù)據(jù)寫入磁盤-->
                timeToIdleSeconds="15"
    <!--當緩存閑置時間超過該值,則緩存自動銷毀-->
                    timeToLiveSeconds="120"
    <!--緩存創(chuàng)建之后,到達該緩存自動銷毀-->
              />
            
    </ehcache>
        4.2在Hibernate.cfg.xml中的mapping標簽上面加以下內(nèi)容:
            
    <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標簽下加入以下內(nèi)容:
           
    <cache usage="read-only" /><!--也可讀寫-->
        4.4創(chuàng)建DAO,內(nèi)容如下:
            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
    posted on 2010-03-14 17:47 王總兵 閱讀(252) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日本一道本高清免费| 午夜男人一级毛片免费| 国内永久免费crm系统z在线 | 国产又黄又爽又刺激的免费网址 | 亚洲中文字幕乱码AV波多JI| 污视频网站在线免费看| 野花香高清视频在线观看免费| 九九精品免费视频| yy6080久久亚洲精品| 中文字幕亚洲综合久久2| 日韩亚洲综合精品国产| 24小时免费看片| 红杏亚洲影院一区二区三区| 亚洲伊人久久精品| 日本三级在线观看免费| 国产亚洲精久久久久久无码| 精品成人一区二区三区免费视频| 99re在线免费视频| 中文字幕亚洲乱码熟女一区二区| 亚洲日本中文字幕天天更新| 午夜免费福利小电影| 亚洲人成精品久久久久| 免费高清A级毛片在线播放| 免费中文字幕在线观看| 精品久久亚洲中文无码| 亚洲免费二区三区| 亚洲精选在线观看| 中文字幕乱码免费看电影| 亚洲精品tv久久久久| 亚洲国产成人久久精品大牛影视 | 亚洲熟妇少妇任你躁在线观看无码| 亚洲午夜精品一区二区公牛电影院 | 亚洲人成人网毛片在线播放| 91香蕉在线观看免费高清| 亚洲中文字幕无码一久久区| 无码日韩精品一区二区三区免费 | 亚洲老熟女五十路老熟女bbw| 免费一看一级毛片人| 久草福利资源网站免费| 亚洲国产精彩中文乱码AV| 两个人的视频www免费|