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

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

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

    hibernate二級緩存

    hibernate 二級緩存:(緩存的是實體對象,二級緩存是放變化不是很大的數(shù)據(jù))








    二級緩存也稱進(jìn)程級的緩存或SessionFactory級的緩存,而二級緩存可以被所有的session(hibernate中的)共享二級緩存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二級緩存

     

    二級緩存的配置和使用:

    1.將echcache.xml文件拷貝到src下, 二級緩存hibernate默認(rèn)是開啟的,手動開啟

    2.開啟二級緩存,修改hibernate.cfg.xml文件,

    <property name=”hibernate.cache.user_second_level_cache”>true</property>

    3.指定緩存產(chǎn)品提供商

    <property name=”hibernate.cache.provider_calss”>org.hibernate.cache.EhCacheProvider</property>

     

    4.指定那些實體類使用二級緩存(兩種方法,推薦使用第二種)

    第一種:在*.hbm.xml中,在<id>之前加入

    <cache usage=”read-only” />, 使用二級緩存

    第二種:在hibernate.cfg.xml配置文件中,在<mapping resource=”com/Studnet.hbm.xml” />后面加上:

    <class-cache class=” com.Studnet” usage=”read-only” /> 

     

    二級緩存是緩存實體對象的

    了解一級緩存和二級緩存的交互

     

     

     

     

    測試二級緩存:

    一.開啟兩個session中發(fā)出兩次load查詢(getload一樣,同樣不會查詢數(shù)據(jù)庫),

    Student sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    sessioin.close();

    ………..

           sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    開啟兩個session中發(fā)出兩次load查詢,第一次load的時候不會去查詢數(shù)據(jù)庫,因為他是LAZY的,當(dāng)使用的時候才去查詢數(shù)據(jù)庫,  第二次load的時候也不會,當(dāng)使用的時候查詢數(shù)據(jù)庫,開啟了二級緩存,也不會查詢數(shù)據(jù)庫。

     

     

    二.開啟兩個session,分別調(diào)用load,再使用sessionFactory清楚二級緩存

    Student sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    sessioin.close();

    ………..

    SessionFactory factory = HibernateUtil.getSessionFactory();

    //factory.evict(Student.class); //清除所有Student對象

    Factory.evict(Student.class,1); //清除指定id=1 的對象

     

           sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    開啟兩個session中發(fā)出兩次load查詢,第一次load的時候不會去查詢數(shù)據(jù)庫,因為他是LAZY的,當(dāng)使用的時候才去查詢數(shù)據(jù)庫,  第二次load的時候也不會,當(dāng)使用的時候查詢數(shù)據(jù)庫,它要查詢數(shù)據(jù)庫,因為二級緩存中被清除了

     

    三.一級緩存和二級緩存的交互

     

    session.setCacheMode(CacheMode.GET);    //設(shè)置成 只是從二級緩存里讀,不向二級緩存里寫數(shù)據(jù)

    Student sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    sessioin.close();

    ………..

    SessionFactory factory = HibernateUtil.getSessionFactory();

    //factory.evict(Student.class); //清除所有Student對象

    Factory.evict(Student.class,1); //清除指定id=1 的對象

     

           sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    開啟兩個session中發(fā)出兩次load查詢,第一次load的時候不會去查詢數(shù)據(jù)庫,因為他是LAZY的,當(dāng)使用的時候才去查詢數(shù)據(jù)庫,  第二次load的時候也不會,當(dāng)使用的時候查詢數(shù)據(jù)庫,它要查詢數(shù)據(jù)庫,因為 設(shè)置了CacheMode為GET,(load設(shè)置成不能往二級緩沖中寫數(shù)據(jù)), 所以二級緩沖中沒有數(shù)據(jù)

     

     

     

    session.setCacheMode(CacheMode.PUT);  //設(shè)置成只是向二級緩存里寫數(shù)據(jù),不讀數(shù)據(jù)

    Student sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    sessioin.close();

    ………..

    SessionFactory factory = HibernateUtil.getSessionFactory();

    //factory.evict(Student.class); //清除所有Student對象

    Factory.evict(Student.class,1); //清除指定id=1 的對象

     

           sutdent = (Student)session.load(Student.class,1);

           System.out.println(student.getName());

    開啟兩個session中發(fā)出兩次load查詢,第一次load的時候不會去查詢數(shù)據(jù)庫,因為他是LAZY的,當(dāng)使用的時候才去查詢數(shù)據(jù)庫,  第二次load的時候也不會,當(dāng)使用的時候查詢數(shù)據(jù)庫,它要查詢數(shù)據(jù)庫,因為設(shè)置了CacheMode為POST,(load設(shè)置成只是向二級緩存里寫數(shù)據(jù),不讀數(shù)據(jù))

     

    posted on 2009-04-06 12:02 胡鵬 閱讀(807) 評論(0)  編輯  收藏 所屬分類: hibernate

    導(dǎo)航

    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    統(tǒng)計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    agile

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 999在线视频精品免费播放观看| 亚洲精品午夜在线观看| 毛片免费视频播放| 99视频在线观看免费| 亚洲成av人片天堂网无码】| 亚洲色图校园春色| 久久青青成人亚洲精品| 亚洲色偷偷综合亚洲AV伊人| 国产一卡二卡≡卡四卡免费乱码 | 亚洲伊人成无码综合网 | 美腿丝袜亚洲综合| a级毛片无码免费真人| 无码人妻一区二区三区免费n鬼沢| 九九九精品视频免费| 亚洲av无码无线在线观看| 亚洲永久在线观看| 亚洲最大黄色网址| 中文字幕亚洲色图| 亚洲宅男永久在线| 亚洲国产综合专区电影在线| 国产亚洲精品a在线观看app| 中文亚洲AV片在线观看不卡| 精品国产亚洲男女在线线电影| 免费中文字幕在线| 亚洲AV伊人久久青青草原| 四虎影视在线永久免费看黄| 免费羞羞视频网站| 在线免费观看国产视频| 在线观看亚洲免费视频| 日韩一区二区在线免费观看 | 亚洲国产精品白丝在线观看| 99亚洲精品高清一二区| 久久久久亚洲AV无码观看| 亚洲精品456在线播放| 亚洲国产午夜电影在线入口| 精品亚洲AV无码一区二区| 国产91在线|亚洲| 亚洲成在人线在线播放无码| 精品亚洲视频在线| 一区二区3区免费视频| a毛片免费观看完整|