日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

关于mybatis缓存配置讲解

發(fā)布時(shí)間:2023/10/11 综合教程 84 老码农
生活随笔 收集整理的這篇文章主要介紹了 关于mybatis缓存配置讲解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一級(jí)緩存:

一級(jí)緩存是默認(rèn)的.

測(cè)試:在WEB頁(yè)面同一個(gè)查詢執(zhí)行兩次從日志里面看同樣的sql查詢執(zhí)行兩次。

2次sql查詢,看似我們使用了同一個(gè)sqlSession,但是實(shí)際上因?yàn)槲覀兊膁ao繼承了SqlSessionDaoSupport,而SqlSessionDaoSupport內(nèi)部sqlSession的實(shí)現(xiàn)是使用用動(dòng)態(tài)代理實(shí)現(xiàn)的,這個(gè)動(dòng)態(tài)代理sqlSessionProxy使用一個(gè)模板方法封裝了select()等操作,每一次select()查詢都會(huì)自動(dòng)先執(zhí)行openSession(),執(zhí)行完close()以后調(diào)用close()方法,相當(dāng)于生成了一個(gè)新的session實(shí)例,所以我們無(wú)需手動(dòng)的去關(guān)閉這個(gè)session()(關(guān)于這一點(diǎn)見(jiàn)下面mybatis的官方文檔),當(dāng)然也無(wú)法使用mybatis的一級(jí)緩存,也就是說(shuō)mybatis的一級(jí)緩存在spring中是沒(méi)有作用的.

二級(jí)緩存:

配置:

<mapper namespace="com.cnblogs.yjmyzz.mybatis.mapper.OrderMapper">

<cache 
        eviction="LRU"
        flushInterval="60000"
        size="1024"
        readOnly="true"
    />    
...
</mapper>

這里有幾個(gè)要注意的地方:

eviction是緩存的淘汰算法,可選值有"LRU"、"FIFO"、"SOFT"、"WEAK",缺省值是LRU

flashInterval指緩存過(guò)期時(shí)間,單位為毫秒,60000即為60秒,缺省值為空,即只要容量足夠,永不過(guò)期

size指緩存多少個(gè)對(duì)象,默認(rèn)值為1024

readOnly是否只讀,如果為true,則所有相同的sql語(yǔ)句返回的是同一個(gè)對(duì)象(有助于提高性能,但并發(fā)操作同一條數(shù)據(jù)時(shí),可能不安全),如果設(shè)置為false,則相同的sql,后面訪問(wèn)的是cache的clone副本。

上面這個(gè)是全局設(shè)置,在每條單獨(dú)的sql語(yǔ)句上,還可以有局部設(shè)置,比如:

<select id="getOrder" parameterType="int" resultType="TOrder"  useCache="false">
        ...
</select>

useCache="false"表示該select語(yǔ)句不使用緩存(即使xml最開(kāi)頭的全局cache啟用)

默認(rèn)情況下,如果全局開(kāi)啟了緩存,insert/update/delete成功后,會(huì)自動(dòng)刷新相關(guān)的緩存項(xiàng),但有一點(diǎn)要特別注意:在mybatis與hibernate混用時(shí),由于mybatis與hibernate的緩存是無(wú)關(guān)的,如果用mybatis做select查詢,用hibernate做insert/update/delete,hibernate對(duì)數(shù)據(jù)的修改,并不會(huì)刷新mybatis的緩存。

總結(jié)

以上是生活随笔為你收集整理的关于mybatis缓存配置讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。