mybatis開(kāi)啟二級(jí)緩存

mybatis開(kāi)啟二級(jí)緩存

1.修改配置文件mybatis-config.xml加入<setting?name="cacheEnabled"value="true"/>,全局配置參數(shù),需要時(shí)再設(shè)置

cacheEnabled 介紹

描述 : cacheEnabled

允許值: 對(duì)在此配置文件下的所有cache 進(jìn)行全局性開(kāi)/關(guān)設(shè)置。

默認(rèn)值 (true/false): true?

2.在mapper.xml中開(kāi)啟二緩存,mapper.xml下的sql執(zhí)行完成會(huì)存儲(chǔ)到它的緩存區(qū),如:

開(kāi)啟緩存后,第一次查詢會(huì)執(zhí)行sql,第二次及以后的查詢都會(huì)從緩存中讀取數(shù)據(jù)

注意:開(kāi)啟緩存的弊端是數(shù)據(jù)沒(méi)有實(shí)時(shí)性,當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)一旦修改,查詢的數(shù)據(jù)還是緩存中的數(shù)據(jù)沒(méi)有實(shí)時(shí)性,對(duì)于某些需要實(shí)時(shí)性顯示數(shù)據(jù)的接口我們可以設(shè)置useCache="false",設(shè)置該屬性后,該接口每次查詢出來(lái)都是去執(zhí)行sql查詢出實(shí)時(shí)性數(shù)據(jù)。

相關(guān)配置說(shuō)明:

①.設(shè)置useCache=false可以禁用當(dāng)前select語(yǔ)句的二級(jí)緩存,即每次查詢都會(huì)發(fā)出sql去查詢,默認(rèn)情況是true,即該sql使用二級(jí)緩存。

[html]view plaincopy

<select?id="findOrderListResultMap"?resultMap="ordersUserMap"?useCache="false">??

總結(jié):針對(duì)每次查詢都需要最新的數(shù)據(jù)sql,要設(shè)置成useCache=false,禁用二級(jí)緩存。

②.清空緩存

[html]

view plaincopy

<insert?id="insertUser"?parameterType="cn.itcast.mybatis.po.User"?flushCache="true">??

總結(jié):一般下執(zhí)行完commit操作都需要刷新緩存,flushCache=true表示刷新緩存,這樣可以避免數(shù)據(jù)庫(kù)臟讀。

注意:

(1)當(dāng)為select語(yǔ)句時(shí):

flushCache默認(rèn)為false,表示任何時(shí)候語(yǔ)句被調(diào)用,都不會(huì)去清空本地緩存和二級(jí)緩存。

useCache默認(rèn)為true,表示會(huì)將本條語(yǔ)句的結(jié)果進(jìn)行二級(jí)緩存。

(2)當(dāng)為insert、update、delete語(yǔ)句時(shí):

flushCache默認(rèn)為true,表示任何時(shí)候語(yǔ)句被調(diào)用,都會(huì)導(dǎo)致本地緩存和二級(jí)緩存被清空。

useCache屬性在該情況下沒(méi)有。

當(dāng)為select語(yǔ)句的時(shí)候,如果沒(méi)有去配置flushCache、useCache,那么默認(rèn)是啟用緩存的,所以,如果有必要,那么就需要人工修改配置

3.對(duì)應(yīng)的pojo實(shí)現(xiàn)序列化(implements Serializable)

4.mybatis自身實(shí)現(xiàn)二級(jí)緩存弊端在于只能作用于數(shù)據(jù)庫(kù),此時(shí)需要我們引用第三方庫(kù)作為緩存庫(kù),這樣緩存更具有擴(kuò)展性。。。(待續(xù))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.修改配置文件mybatis-config.xml加入 ,全局配置參數(shù),需要時(shí)再設(shè)置 cacheEnabled ...
    TomHu_blog001閱讀 2,536評(píng)論 1 0
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,229評(píng)論 0 4
  • 1、概述 Mybatis的緩存大體上分為一級(jí)緩存和二級(jí)緩存,我們先來(lái)說(shuō)下一級(jí)緩存。 2、一級(jí)緩存 ??當(dāng)我們使用M...
    騎著烏龜去看海閱讀 1,027評(píng)論 3 3
  • <遇見(jiàn)> 2016年底認(rèn)識(shí)了你,看著你幫助了很多人,從未想過(guò)三年后,你也幫助了我。 一個(gè)人走...
    ReLee_1604閱讀 551評(píng)論 4 10
  • 雪艷自顧自地坐在河邊哭,心底的委屈肆意地蔓延,哭聲越來(lái)越大,路上不斷有行人匆匆走過(guò),聽(tīng)見(jiàn)她的哭聲,好多人都停下來(lái)看...
    夢(mèng)楓晴晚閱讀 449評(píng)論 0 0

友情鏈接更多精彩內(nèi)容