最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深層剖析java應(yīng)用開發(fā)中MyBayis緩存

 更新時間:2021年09月15日 11:24:42   作者:DrLai  
這篇文章主要為大家深層剖析java開發(fā)中MyBayis緩存,文中講解了Mybatis緩存的分類以及使用的方式,有需要的朋友可以借鑒參考下,希望可以有所幫助

什么是 MyBatis 緩存

使⽤緩存可以減少 Java 應(yīng)⽤與數(shù)據(jù)庫的交互次數(shù),從而提升程序的運行效率。⽐如查詢出 id = 1 的對象,第⼀次查詢出之后會自動將該對象保存到緩存中,當(dāng)下⼀次查詢時,直接從緩存中取出對象即可, 無需再次訪問數(shù)據(jù)庫。

MyBatis 緩存分類

1、⼀級緩存:SqlSession 級別,默認(rèn)開啟,并且不能關(guān)閉。(默認(rèn)開啟)

操作數(shù)據(jù)庫時需要創(chuàng)建 SqlSession 對象,在對象中有⼀個 HashMap ⽤于存儲緩存數(shù)據(jù),不同的 SqlSession 之間緩存數(shù)據(jù)區(qū)域是互不影響的。 ⼀級緩存的作用域是 SqlSession 范圍的,當(dāng)在同⼀個 SqlSession 中執(zhí)⾏兩次相同的 SQL 語句事,第⼀ 次執(zhí)行完畢會將結(jié)果保存到緩存中,第⼆次查詢時直接從緩存中獲取。 需要注意的是,如果 SqlSession 執(zhí)行了 DML 操作(insert、update、delete),MyBatis 必須將緩存清空以保證數(shù)據(jù)的準(zhǔn)確性。

2、二級緩存:Mapper 級別,默認(rèn)關(guān)閉,可以開啟。

使⽤⼆級緩存時,多個 SqlSession 使⽤同⼀個 Mapper 的 SQL 語句操作數(shù)據(jù)庫,得到的數(shù)據(jù)會存在⼆ 級緩存區(qū),同樣是使⽤ HashMap 進(jìn)⾏數(shù)據(jù)存儲,相⽐較于⼀級緩存,⼆級緩存的范圍更⼤,多個 SqlSession 可以共⽤⼆級緩存,⼆級緩存是跨 SqlSession 的。 ⼆級緩存是多個 SqlSession 共享的,其作⽤域是 Mapper 的同⼀個 namespace,不同的 SqlSession 兩次執(zhí)⾏相同的 namespace 下的 SQL 語句,參數(shù)也相等,則第⼀次執(zhí)⾏成功之后會將數(shù)據(jù)保存到⼆級 緩存中,第⼆次可直接從⼆級緩存中取出數(shù)據(jù)。

二級緩存如何使用

1、MyBatis 自帶的二級緩存

1.1config.xml 配置開啟⼆級緩存

settings>
 <!-- 打印SQL-->
 <setting name="logImpl" value="STDOUT_LOGGING" />
 <!-- 開啟延遲加載 -->
 <setting name="lazyLoadingEnabled" value="true"/>
 <!-- 開啟⼆級緩存 -->
 <setting name="cacheEnabled" value="true"/>
</settings>

1.2Mapper.xml 中配置⼆級緩存

<cache></cache>

1.3實體類實現(xiàn)序列化接口

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Account implements Serializable {
 private long id;
 private String username;
 private String password;
 private int age;
}

2、ehcache 二級緩存(第三方)

2.1pom.xml 添加相關(guān)依賴

<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-ehcache</artifactId>
 <version>1.0.0</version>
</dependency>
<dependency>
 <groupId>net.sf.ehcache</groupId>
 <artifactId>ehcache-core</artifactId>
 <version>2.4.3</version>
</dependency>

2.2添加 ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
 <diskStore/>
 <defaultCache
 maxElementsInMemory="1000"
 maxElementsOnDisk="10000000"
 eternal="false"
 overflowToDisk="false"
 timeToIdleSeconds="120"
 timeToLiveSeconds="120"
 diskExpiryThreadIntervalSeconds="120"
 memoryStoreEvictionPolicy="LRU">
 </defaultCache>
</ehcache>

2.3config.xml 配置開啟⼆級緩存

<settings>
 <!-- 打印SQL-->
 <setting name="logImpl" value="STDOUT_LOGGING" />
 <!-- 開啟延遲加載 -->
 <setting name="lazyLoadingEnabled" value="true"/>
 <!-- 開啟⼆級緩存 -->
 <setting name="cacheEnabled" value="true"/>
</settings>

2.4 Mapper.xml 中配置⼆級緩存

<cache type="org.mybatis.caches.ehcache.EhcacheCache">
 <!-- 緩存創(chuàng)建之后,最后⼀次訪問緩存的時間⾄緩存失效的時間間隔 -->
 <property name="timeToIdleSeconds" value="3600"/>
 <!-- 緩存⾃創(chuàng)建時間起⾄失效的時間間隔 -->
 <property name="timeToLiveSeconds" value="3600"/>
 <!-- 緩存回收策略,LRU表示移除近期使⽤最少的對象 -->
 <property name="memoryStoreEvictionPolicy" value="LRU"/>
</cache>

以上就是深層剖析java開發(fā)中MyBayis緩存的詳細(xì)內(nèi)容,更多關(guān)于Mybatis緩存剖析的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實現(xiàn)的打地鼠小游戲完整示例【附源碼下載】

    Java實現(xiàn)的打地鼠小游戲完整示例【附源碼下載】

    這篇文章主要介紹了Java實現(xiàn)的打地鼠小游戲,結(jié)合完整實例形式分析了Java多線程操作及鍵盤按鍵響應(yīng)實現(xiàn)的打地鼠游戲功能相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Java Swagger技術(shù)使用指南

    Java Swagger技術(shù)使用指南

    Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來始終保持同步
    2021-09-09
  • java利用jieba進(jìn)行分詞的實現(xiàn)

    java利用jieba進(jìn)行分詞的實現(xiàn)

    本文主要介紹了在Java中使用jieba-analysis庫進(jìn)行分詞,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 詳解Java中的hashcode

    詳解Java中的hashcode

    這篇文章主要介紹了詳解Java中的hashcode,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 關(guān)于jpa中無法刪除onetomany中many問題的解決

    關(guān)于jpa中無法刪除onetomany中many問題的解決

    這篇文章主要介紹了關(guān)于jpa中無法刪除onetomany中many問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 利用logback filter過濾某個類 屏蔽某個類

    利用logback filter過濾某個類 屏蔽某個類

    這篇文章主要介紹了利用logback filter過濾某個類 屏蔽某個類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java基于Netty實現(xiàn)Http server的實戰(zhàn)

    Java基于Netty實現(xiàn)Http server的實戰(zhàn)

    本文主要介紹了Java基于Netty實現(xiàn)Http server的實戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • JVM,JRE和JDK的區(qū)別小結(jié)

    JVM,JRE和JDK的區(qū)別小結(jié)

    在Java環(huán)境配置和項目啟動中,JVM,JRE和JDK這三者的配置是項目啟動的基礎(chǔ)保證,本文就詳細(xì)的介紹一下這三者的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Java SpringBoot實現(xiàn)文件上傳功能的示例代碼

    Java SpringBoot實現(xiàn)文件上傳功能的示例代碼

    這篇文章主要介紹了如何利用Java SpringBoot實現(xiàn)文件上傳功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-03-03
  • SpringBoot中的@RestControllerAdvice注解詳解

    SpringBoot中的@RestControllerAdvice注解詳解

    這篇文章主要介紹了SpringBoot中的@RestControllerAdvice注解詳解,RestControllerAdvice注解用于創(chuàng)建全局異常處理類,用于捕獲和處理整個應(yīng)用程序中的異常,需要的朋友可以參考下
    2024-01-01

最新評論

义马市| 离岛区| 饶平县| 金寨县| 宜春市| 四子王旗| 崇仁县| 邳州市| 河东区| 邵东县| 大洼县| 康乐县| 宜章县| 北宁市| 温泉县| 高陵县| 钦州市| 仁化县| 衡水市| 南部县| 石河子市| 成都市| 辽阳市| 郸城县| 广德县| 远安县| 吴川市| 碌曲县| 盘山县| 股票| 阿尔山市| 彰化县| 会理县| 都兰县| 旬阳县| 阳城县| 依安县| 灵石县| 高唐县| 宜丰县| 永川市|