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

深入理解Mybatis二級(jí)緩存

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

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

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

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

每個(gè)namespace的mapper都會(huì)有自己的一個(gè)緩存的空間。

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

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

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

在sqlMapConfig.xml中:

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

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

<cache/>

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

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

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

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

一般不予設(shè)置,設(shè)置可能會(huì)導(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);
   //第一次請(qǐng)求,查詢id為1的用戶
   User user1 = mapper1.findUserById(1);
   System.out.println(user1);
   //close 將數(shù)據(jù)寫(xiě)入二級(jí)緩存
   session1.close();
   //清空二級(jí)緩存,UserMapper下的
   user1.setUsername("mmm");
   mapper3.updateUser(user1);
   session3.commit();
   //第二次查詢會(huì)從緩存中找
   User user2 = mapper2.findUserById(1);
   System.out.println(user2);
   session2.close();

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

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

相關(guān)文章

  • Java String 和StringBuffer的詳解及區(qū)別

    Java String 和StringBuffer的詳解及區(qū)別

    這篇文章主要介紹了Java String 和StringBuffer的詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 基于Java實(shí)現(xiàn)Actor模型

    基于Java實(shí)現(xiàn)Actor模型

    Actor模型是一種常見(jiàn)的并發(fā)模型,與最常見(jiàn)的并發(fā)模型—共享內(nèi)存(同步鎖)不同,它將程序分為許多獨(dú)立的計(jì)算單元—Actor,文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以參考閱讀
    2023-05-05
  • JavaWeb導(dǎo)出Excel文件并彈出下載框

    JavaWeb導(dǎo)出Excel文件并彈出下載框

    這篇文章主要為大家詳細(xì)介紹了JavaWeb導(dǎo)出Excel文件并彈出下載框的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Spring不能注入Static變量的原因及Spring注入靜態(tài)變量

    Spring不能注入Static變量的原因及Spring注入靜態(tài)變量

    這篇文章主要介紹了Spring不能注入Static變量的原因及Spring注入靜態(tài)變量,需要的朋友可以參考下
    2016-01-01
  • java.lang.IllegalStateException異常原因和解決辦法

    java.lang.IllegalStateException異常原因和解決辦法

    這篇文章主要給大家介紹了關(guān)于java.lang.IllegalStateException異常原因和解決辦法,IllegalStateException是Java標(biāo)準(zhǔn)庫(kù)中的一個(gè)異常類,通常表示在不合適或無(wú)效的情況下執(zhí)行了某個(gè)方法或操作,需要的朋友可以參考下
    2023-07-07
  • Java關(guān)于BeabUtils.copyproperties的用法

    Java關(guān)于BeabUtils.copyproperties的用法

    這篇文章主要介紹了Java關(guān)于BeabUtils.copyproperties的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 使用springmvc參數(shù)接收boolean類型參數(shù)的問(wèn)題

    使用springmvc參數(shù)接收boolean類型參數(shù)的問(wèn)題

    這篇文章主要介紹了使用springmvc參數(shù)接收boolean類型參數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot集成elasticsearch使用圖文詳解

    SpringBoot集成elasticsearch使用圖文詳解

    Spring Boot集成Elasticsearch其實(shí)非常簡(jiǎn)單,這篇文章主要給大家介紹了關(guān)于SpringBoot集成elasticsearch使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解

    SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解

    在Spring Boot應(yīng)用的開(kāi)發(fā)中,不管是對(duì)底層數(shù)據(jù)庫(kù)操作,對(duì)業(yè)務(wù)層操作,還是對(duì)控制層操作,都會(huì)不可避免的遇到各種可預(yù)知的,不可預(yù)知的異常需要處理,如果每個(gè)處理過(guò)程都單獨(dú)處理異常,那么系統(tǒng)的代碼耦合度會(huì)很高,工作量大且不好統(tǒng)一,以后維護(hù)的工作量也很大
    2022-10-10
  • IDEA導(dǎo)出jar打包成exe應(yīng)用程序的小結(jié)

    IDEA導(dǎo)出jar打包成exe應(yīng)用程序的小結(jié)

    這篇文章主要介紹了IDEA導(dǎo)出jar打包成exe應(yīng)用程序,需要的朋友可以參考下
    2020-08-08

最新評(píng)論