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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《深入理解mybatis原理》 MyBatis缓存机制的设计与实现

發(fā)布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《深入理解mybatis原理》 MyBatis缓存机制的设计与实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文主要講解MyBatis非常棒的緩存機制的設(shè)計原理,給讀者們介紹一下MyBatis的緩存機制的輪廓,然后會分別針對緩存機制中的方方面面展開討論。

MyBatis將數(shù)據(jù)緩存設(shè)計成兩級結(jié)構(gòu),分為一級緩存、二級緩存:

???????一級緩存是Session會話級別的緩存,位于表示一次數(shù)據(jù)庫會話的SqlSession對象之中,又被稱之為本地緩存。一級緩存是MyBatis內(nèi)部實現(xiàn)的一個特性,用戶不能配置,默認情況下自動支持的緩存,用戶沒有定制它的權(quán)利(不過這也不是絕對的,可以通過開發(fā)插件對它進行修改);

???????二級緩存是Application應(yīng)用級別的緩存,它的是生命周期很長,跟Application的聲明周期一樣,也就是說它的作用范圍是整個Application應(yīng)用。

???

??MyBatis中一級緩存和二級緩存的組織如下圖所示:

?一級緩存的工作機制:

??????一級緩存是Session會話級別的,一般而言,一個SqlSession對象會使用一個Executor對象來完成會話操作,Executor對象會維護一個Cache緩存,以提高查詢性能。關(guān)于一級緩存的詳細實現(xiàn),我已經(jīng)在《深入理解mybatis原理》 MyBatis的一級緩存實現(xiàn)詳解 及使用注意事項 一文中有非常詳盡的討論,讀者可以前去了解。

二級緩存的工作機制:

???????如上所言,一個SqlSession對象會使用一個Executor對象來完成會話操作,MyBatis的二級緩存機制的關(guān)鍵就是對這個Executor對象做文章。如果用戶配置了"cacheEnabled=true",那么MyBatis在為SqlSession對象創(chuàng)建Executor對象時,會對Executor對象加上一個裝飾者:CachingExecutor,這時SqlSession使用CachingExecutor對象來完成操作請求。CachingExecutor對于查詢請求,會先判斷該查詢請求在Application級別的二級緩存中是否有緩存結(jié)果,如果有查詢結(jié)果,則直接返回緩存結(jié)果;如果緩存中沒有,再交給真正的Executor對象來完成查詢操作,之后CachingExecutor會將真正Executor返回的查詢結(jié)果放置到緩存中,然后在返回給用戶。

?????MyBatis的二級緩存設(shè)計得比較靈活,你可以使用MyBatis自己定義的二級緩存實現(xiàn);你也可以通過實現(xiàn)org.apache.ibatis.cache.Cache接口自定義緩存;也可以使用第三方內(nèi)存緩存庫,如Memcached等,這個我們會在后續(xù)的文章中詳細討論。

????????????????????
??????????????

由于緩存機制東西太多,所以將緩存機制的敘述拆成一下幾部分(讀者可點擊查看):

1. MyBatis的一級緩存實現(xiàn)詳解 及使用注意事項
2. MyBatis的二級緩存的設(shè)計原理

3. 自定義二級緩存(未完,待續(xù))

4. 使用第三方內(nèi)存庫作為MyBatis的二級緩存(未完,待續(xù))
---------------------?
作者:亦山?
來源:CSDN?
原文:https://blog.csdn.net/luanlouis/article/details/41390801?
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!

總結(jié)

以上是生活随笔為你收集整理的《深入理解mybatis原理》 MyBatis缓存机制的设计与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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