Hibernate提供了一級(jí)緩存機(jī)制和二級(jí)緩存機(jī)制。
/** * Hibernate一級(jí)緩存 * 生命周期:session范圍;生命周期比較短 * 從緩存中讀取數(shù)據(jù)的方法:get();load() * 往緩存寫數(shù)據(jù):save(),update(),delete(),get(),load(),lock()。。。。。 */
//一級(jí)緩存機(jī)制static void getDepartment(){ Session session = HibernateUtil.getSession(); Department dpt = null; try { dpt = (Department)session.get(Department.class, 1); System.out.PRintln(dpt.getClass()); session.evict(dpt); dpt = (Department) session.get(Department.class, 1); System.out.println(dpt.getClass()); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ session.close(); } dpt = (Department) HibernateUtil.getSession().get(Department.class, 1); System.out.println(dpt.getClass()); }

注:一級(jí)緩存機(jī)制,只要session沒(méi)關(guān)閉,就可以到緩存機(jī)制查找語(yǔ)句,不必去數(shù)據(jù)庫(kù) 查詢。如果一旦關(guān)閉session,緩存機(jī)制將從數(shù)據(jù)庫(kù)中查詢。/*** 二級(jí)緩存:* EHCache* OSCache* JbossCache* 二級(jí)緩存:由SessionFactory維護(hù)*/
//二級(jí)緩存機(jī)制static void twoCache(){ Session session = HibernateUtil.getSession(); Department dpt = null; dpt = (Department) session.get(Department.class, 1); System.out.println(dpt.getClass()); //session.clear(); dpt = (Department) HibernateUtil.getSession().get(Department.class, 1); System.out.println(dpt.getClass()); dpt = (Department) HibernateUtil.getSession().get(Department.class, 1); System.out.println(dpt.getClass()); //得到Hibernate統(tǒng)計(jì)信息 Statistics statistics = HibernateUtil.getSessionfactory().getStatistics(); System.out.println("put:"+statistics.getSecondLevelCachePutCount()); System.out.println("Hit"+statistics.getSecondLevelCacheHitCount()); System.out.println("Miss:"+statistics.getSecondLevelCacheMissCount()); }

您可以通過(guò)點(diǎn)擊 右下角 的按鈕 來(lái)對(duì)文章內(nèi)容作出評(píng)價(jià), 也可以通過(guò)左下方的 關(guān)注按鈕 來(lái)關(guān)注我的博客的最新動(dòng)態(tài)。 如果文章內(nèi)容對(duì)您有幫助, 不要忘記點(diǎn)擊右下角的 推薦按鈕 來(lái)支持一下哦 如果您對(duì)文章內(nèi)容有任何疑問(wèn), 可以通過(guò)評(píng)論或發(fā)郵件的方式聯(lián)系我: 2276292708@QQ.com如果需要轉(zhuǎn)載,請(qǐng)注明出處,謝謝!!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注