<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

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人久久免费网站| a在线视频免费观看| 亚洲AV网站在线观看| 日韩一区二区三区免费播放| 亚洲日本va在线视频观看| 91精品国产免费入口| 亚洲老熟女五十路老熟女bbw| 亚洲AV成人精品日韩一区18p| 青青草无码免费一二三区| 亚洲综合久久一本伊伊区| 亚洲精品国产va在线观看蜜芽| 亚洲免费观看视频| 亚洲AV日韩综合一区尤物| 色久悠悠婷婷综合在线亚洲 | 久别的草原电视剧免费观看| 亚洲一本之道高清乱码| 国产国拍亚洲精品福利| 久久久久国色AV免费看图片| 成人网站免费大全日韩国产| 亚洲深深色噜噜狠狠网站| 亚洲人成伊人成综合网久久久| 午夜福利不卡片在线播放免费| 久香草视频在线观看免费| 亚洲图片激情小说| 美腿丝袜亚洲综合| 性感美女视频在线观看免费精品| 中文字幕日本人妻久久久免费| 亚洲国产高清国产拍精品| 亚洲精品一卡2卡3卡三卡四卡| 免费在线观看亚洲| 免费国产成人高清在线观看网站| 中文字幕av免费专区| 国产成人精品久久亚洲高清不卡| 亚洲va在线va天堂va四虎| 亚洲国产精品成人AV无码久久综合影院| 久别的草原电视剧免费观看| 一级黄色毛片免费看| 亚洲国产精品无码久久98| 亚洲国产情侣一区二区三区| 图图资源网亚洲综合网站| 免费二级毛片免费完整视频|