相同:
1.都分為兩級(jí)緩存馒疹,一級(jí)緩存和二級(jí)緩存穿肄,一級(jí)緩存都是session事務(wù)級(jí)別的脖祈,在一個(gè)事務(wù)中有效肆捕,事務(wù)執(zhí)行完后緩存失效
2.一般用戶(hù)不需要干涉一級(jí)緩存刷晋,默認(rèn)一級(jí)緩存時(shí)開(kāi)啟的
3.二級(jí)緩存都可以自定義配置盖高,手動(dòng)設(shè)置開(kāi)啟或者關(guān)閉
4.mybatis可以針對(duì)mapper中某一個(gè)statement設(shè)置是否使用二級(jí)緩存
5.二級(jí)緩存都可以通過(guò)配置使用EHCache(可持久化到硬盤(pán))
不同:
1.hibernate的二級(jí)緩存時(shí)應(yīng)用進(jìn)程級(jí)別的,整個(gè)應(yīng)用進(jìn)程查詢(xún)相同的sql時(shí)會(huì)使用二級(jí)緩存中的數(shù)據(jù)眼虱;mybatis是相同namespace下的mapper文件中的sql緩存喻奥,可以讓多個(gè)sqlSession共享,但不是應(yīng)用程序級(jí)別
2.mybatis的相同namespace下的mapper中如果有增刪改的操作捏悬,會(huì)自動(dòng)清空二級(jí)緩存的內(nèi)容