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

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

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

    沉睡森林@漂在北京

    本處文章除注明“轉載”外均為原創,轉載請注明出處。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      152 隨筆 :: 4 文章 :: 114 評論 :: 0 Trackbacks
    1、首先設置EhCache,建立配置文件ehcache.XML,默認的位置在class-path,可以放到你的src目錄下:

    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache>
    <diskStore path="Java.io.tmpdir"/> 
    <defaultCache
    maxElementsInMemory="10000" <!-- 緩存最大數目 -->
    eternal="false" <!-- 緩存是否持久 -->
    overflowToDisk="true" <!-- 是否保存到磁盤,當系統當機時-->
    timeToIdleSeconds="300" <!-- 當緩存閑置n秒后銷毀 -->
    timeToLiveSeconds="180" <!-- 當緩存存活n秒后銷毀-->
    diskPersistent="false"
    diskExpiryThreadIntervalSeconds= "120"/> 
    </ehcache> 


    2、在Hibernate配置文件中設置:

    <!-- 設置Hibernate的緩存接口類,這個類在Hibernate包中 -->
    <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property> 
    <!-- 是否使用查詢緩存 -->
    <property name="hibernate.cache.use_query_cache">true</property>
    如果使用spring調用Hibernate的sessionFactory的話,這樣設置:
    <!--HibernateSession工廠管理 -->
    <bean id="sessionFactory" 

            class="org.springFramework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="datasource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
    <prop key="connection.provider_class">

                     org.hibernate.connection.C3P0ConnectionProvider

           </prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.cache.use_query_cache">true</prop>
    <prop key="hibernate.cache.provider_class">

              org.hibernate.cache.EhCacheProvider

           </prop>
    </props>
    </property>
    <property name="mappingDirectoryLocations">
    <list>
    <value>/Web-INF/classes/cn/rmic/manager/hibernate/</value>
    </list>
    </property> 
    </bean> 


    說明一下:如果不設置“查詢緩存”,那么hibernate只會緩存使用load()方法獲得的單個持久化對象,如果想緩存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數據結果集的話,就需要設置hibernate.cache.use_query_cache true才行。

    3、在Hbm文件中添加<cache usage="read-only"/>

    4、如果需要“查詢緩存”,還需要在使用Query或Criteria()時設置其setCacheable(true);屬性

    5、實踐出真知,給一段測試程序,如果成功的話第二次查詢時不會讀取數據庫

    package cn.rmic.hibernatesample;

    import java.util.List;

    import org.hibernate.CacheMode;
    import org.hibernate.Criteria;
    import org.hibernate.Query;
    import org.hibernate.Session;

    import cn.rmic.hibernatesample.hibernate.HibernateSessionFactory;
    import cn.rmic.manager.po.Resources;

    public class testCacheSelectList {

    /** *//**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Session s=HibernateSessionFactory.getSession();
    Criteria c=s.createCriteria(Resources.class);
    c.setCacheable(true);
    List l=c.list();
    // Query q=s.createQuery("From Resources r")
    // .setCacheable(true) 
    // .setCacheRegion("frontpages") ;
    // List l=q.list();
    Resources resources=(Resources)l.get(0);
    System.out.println("-1-"+resources.getName());
    HibernateSessionFactory.closeSession();
    try {
    Thread.sleep(5000);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    s=HibernateSessionFactory.getSession();
    c=s.createCriteria(Resources.class);
    c.setCacheable(true);
    l=c.list();
    // q=s.createQuery("From Resources r").setCacheable(true) 
    // .setCacheRegion("frontpages");
    // l=q.list();
    resources=(Resources)l.get(0);
    System.out.println("-2-"+resources.getName());
    HibernateSessionFactory.closeSession();
    }


    posted on 2010-03-14 17:45 王總兵 閱讀(181) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 免费无码精品黄AV电影| 成人黄色免费网站| 亚洲无码精品浪潮| 羞羞的视频在线免费观看| 四虎影视永久免费观看地址| 亚洲高清一区二区三区电影| 在线播放高清国语自产拍免费| 亚洲熟妇AV一区二区三区浪潮| 四虎永久在线精品免费网址 | 在线免费观看h片| 亚洲国产日韩在线视频| 国产午夜精品久久久久免费视| 午夜亚洲www湿好大| 84pao强力永久免费高清| 亚洲伊人久久大香线蕉啊| 精品久久洲久久久久护士免费| 青娱乐在线视频免费观看| 亚洲乱色熟女一区二区三区丝袜| 男人j进入女人j内部免费网站 | 免费日本黄色网址| 久久国产精品免费| 中文字幕亚洲精品资源网| 成人免费无码大片A毛片抽搐 | 色婷婷六月亚洲综合香蕉| 亚洲国产中文字幕在线观看 | 国产成人免费高清激情视频| 男女猛烈无遮掩视频免费软件| 在线精品亚洲一区二区小说 | 美女黄网站人色视频免费国产| 无套内射无矿码免费看黄| 亚洲av之男人的天堂网站| 国拍在线精品视频免费观看| 免费观看亚洲人成网站| 亚洲成a人片77777老司机| 在线观看免费人成视频色9| WWW国产成人免费观看视频| 亚洲精品中文字幕无乱码| 凹凸精品视频分类国产品免费| 国产成人久久AV免费| 久久亚洲精品无码av| 亚洲丁香色婷婷综合欲色啪|