欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解Mybatis二級緩存

 更新時間:2016年12月20日 17:25:35   作者:我要這鐵棒有何用  
與一級緩存相比,二級緩存范圍更大了一些,可以被多個SqlSession所共用。下面通過本文帶領(lǐng)大家一起學(xué)習(xí)mybatis二級緩存知識,一起看看吧

上篇文章給大家介紹了mybatis一級緩存,有需要的朋友可以參考下。

與一級緩存相比,二級緩存范圍更大了一些,可以被多個SqlSession所共用。

同樣是發(fā)送同樣的查詢sql會先去緩存中找,找不到再去查詢數(shù)據(jù)庫。

每個namespace的mapper都會有自己的一個緩存的空間。

如果兩個mapper的namespace相同,執(zhí)行mapper查詢到的數(shù)據(jù)將存儲到相同的二級緩存.

同樣如果有sqlSession執(zhí)行了commit 會清空二級緩存.

配置文件(不用配置也是默認(rèn)開啟的):

在sqlMapConfig.xml中:

<setting name="cacheEnabled" value="true"/> 

在相應(yīng)的mapper.xml中:

<cache/>

如果不需要二級緩存,可以在設(shè)置禁用二級緩存

<select useCache="false"></select>

這樣每次都是從數(shù)據(jù)庫中讀取

在執(zhí)行insert,update,delete后會刷新緩存(清空緩存),可以設(shè)置不刷新

一般不予設(shè)置,設(shè)置可能會導(dǎo)致臟讀.

<insert flushCache="false"></insert>

小例子:

SqlSession session1 = factory.openSession();
   SqlSession session2 = factory.openSession();
   SqlSession session3 = factory.openSession();
   UserMapper mapper1 = session1.getMapper(UserMapper.class);
   UserMapper mapper2 = session2.getMapper(UserMapper.class);
   UserMapper mapper3 = session3.getMapper(UserMapper.class);
   //第一次請求,查詢id為1的用戶
   User user1 = mapper1.findUserById(1);
   System.out.println(user1);
   //close 將數(shù)據(jù)寫入二級緩存
   session1.close();
   //清空二級緩存,UserMapper下的
   user1.setUsername("mmm");
   mapper3.updateUser(user1);
   session3.commit();
   //第二次查詢會從緩存中找
   User user2 = mapper2.findUserById(1);
   System.out.println(user2);
   session2.close();

注意此處要進(jìn)行二級緩存的對象必須實現(xiàn)Serilizable接口,因為這些緩存數(shù)據(jù)可能會反序列化寫到硬盤或者其他地方。

以上所述是小編給大家介紹的Mybatis二級緩存,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 使用mybatis攔截器處理敏感字段

    使用mybatis攔截器處理敏感字段

    這篇文章主要介紹了mybatis攔截器處理敏感字段方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java 序列化和反序列化實例詳解

    Java 序列化和反序列化實例詳解

    這篇文章主要介紹了Java 序列化和反序列化實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Spring?Boot?集成?Swagger2構(gòu)建?API文檔

    Spring?Boot?集成?Swagger2構(gòu)建?API文檔

    這篇文章主要介紹了Spring?Boot?集成?Swagger2構(gòu)建?API文檔,通過使用?Swagger,我們只需要按照它所給定的一系列規(guī)范去定義接口以及接口的相關(guān)信息,然后它就能幫我們自動生成各種格式的接口文檔,方便前后端開發(fā)者進(jìn)行前后端聯(lián)調(diào),下文需要的朋友可以參考一下
    2022-03-03
  • Springboot與Maven多環(huán)境配置的解決方案

    Springboot與Maven多環(huán)境配置的解決方案

    多環(huán)境配置的解決方案有很多,我看到不少項目的多環(huán)境配置都是使用Maven來實現(xiàn)的,本文就實現(xiàn)Springboot與Maven多環(huán)境配置,感興趣的可以了解下
    2021-06-06
  • Java分布式事務(wù)管理框架之Seata

    Java分布式事務(wù)管理框架之Seata

    這篇文章主要介紹了Java分布式事務(wù)框架Seata,分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點之上
    2022-07-07
  • 細(xì)品Java8中hashCode方法的使用

    細(xì)品Java8中hashCode方法的使用

    這篇文章主要介紹了細(xì)品Java8中hashCode方法的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java實現(xiàn)字符串轉(zhuǎn)換成可執(zhí)行代碼的方法

    Java實現(xiàn)字符串轉(zhuǎn)換成可執(zhí)行代碼的方法

    今天小編就為大家分享一篇Java實現(xiàn)字符串轉(zhuǎn)換成可執(zhí)行代碼的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • springboot集成ES實現(xiàn)磁盤文件全文檢索的示例代碼

    springboot集成ES實現(xiàn)磁盤文件全文檢索的示例代碼

    這篇文章主要介紹了springboot集成ES實現(xiàn)磁盤文件全文檢索的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Spring攔截器和過濾器的區(qū)別在哪?

    Spring攔截器和過濾器的區(qū)別在哪?

    相信很多小伙伴都對Spring攔截器和過濾器的區(qū)別有疑惑,今天特地整理了本篇文章,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • PowerJob的ProcessorLoader工作流程源碼解讀

    PowerJob的ProcessorLoader工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的ProcessorLoader工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論