MyBatis關(guān)閉一級(jí)緩存的兩種方式(分注解和xml兩種方式)
問(wèn)題:為什么有緩存
mybatis默認(rèn)開啟一級(jí)緩存
什么場(chǎng)景下必須需要關(guān)閉一級(jí)緩存
場(chǎng)景:執(zhí)行2次相同sql,但是第一次查詢sql結(jié)果會(huì)加工處理,比如解析銘文,或者反編譯加密解密用戶名/密碼字符串等等,如果不關(guān)閉一級(jí)緩存,等第二次再查詢相同sql時(shí)不會(huì)去數(shù)據(jù)庫(kù)表重新查詢,而是直接使用緩存,從而導(dǎo)致后面拿到的不是原始數(shù)據(jù)而處理出錯(cuò)
關(guān)閉一級(jí)緩存方法(針對(duì)使用MyBatis場(chǎng)景)
第一種:xml形式(關(guān)閉所有一級(jí)緩存)
<settings> <setting name="cacheEnabled" value="false"/> </settings>
第二種:注解形式(可指定僅僅某個(gè)Mapper關(guān)閉注解)
@Options(flushCache = Options.FlushCachePolicy.TRUE) @Select("select * from ge_jdbc_datasource where id = #{id,jdbcType=BIGINT} and status = 1") @ResultMap("resultMap") JdbcDataSource find(Long id);
第三種:sql動(dòng)態(tài)拼接傳入的隨機(jī)數(shù)
比如sql傳參random()數(shù)值 或者 sql傳入當(dāng)前時(shí)間毫秒數(shù),切記一定要從方法形參傳過(guò)去而不要在sql中拼寫,否則無(wú)效
舉例說(shuō)明:下面方式無(wú)效
select id from ge_jdbc_datasource where id = 1 and STATUS = 1 AND NOW()=NOW()
到此這篇關(guān)于MyBatis關(guān)閉一級(jí)緩存的兩種方式(分注解和xml兩種方式)的文章就介紹到這了,更多相關(guān)MyBatis關(guān)閉一級(jí)緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot如何通過(guò)@Profile注解配置多環(huán)境
在Spring中,可以使用配置文件的方式來(lái)指定不同環(huán)境下所需要的配置信息,本文給大家介紹SpringBoot如何通過(guò)@Profile注解配置多環(huán)境,感興趣的朋友跟隨小編一起看看吧2023-06-06Java中內(nèi)部類使用方法實(shí)戰(zhàn)案例分析
這篇文章主要介紹了Java中內(nèi)部類使用方法,結(jié)合具體案例形式分析了Java內(nèi)部類原理、調(diào)用方法及相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2019-09-09Java如何實(shí)現(xiàn)驗(yàn)證碼驗(yàn)證功能
這篇文章主要教大家如何實(shí)現(xiàn)Java驗(yàn)證碼驗(yàn)證功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Java基于對(duì)象流實(shí)現(xiàn)銀行系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java基于對(duì)象流實(shí)現(xiàn)銀行系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09Java中BigDecimal的舍入模式解析(RoundingMode)
這篇文章主要介紹了Java中BigDecimal的舍入模式解析(RoundingMode),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06java構(gòu)造http請(qǐng)求的幾種方式(附源碼)
本文主要介紹了java構(gòu)造http請(qǐng)求的幾種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Java continue break制作簡(jiǎn)單聊天室程序
這篇文章主要為大家詳細(xì)介紹了Java continue break制作簡(jiǎn)單聊天室程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文)
這篇文章主要介紹了在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12