关于MyBatis的缓存
生活随笔
收集整理的這篇文章主要介紹了
关于MyBatis的缓存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們大概都有所了解MyBatis的緩存級別分為兩種,一級緩存和二級緩存。
MyBatis的一級緩存是SqlSession級別的緩存,二級緩存是Mapper級別的緩存。當我們查詢數據時,使用的是同一個sqlSession時,那我們使用的是一級緩存,(當我們在配置文件中配置cacheEnabled=true,開啟二級緩存)我們使用 不同的sqlSession 查詢 相同的 Mapper時,有可能使用的是Mapper級別的二級緩存。
所以我們查詢數據時,查詢的順序應該是:Mapper級別的緩存>sqlSession級別的緩存>數據庫。
?
一級緩存是Executor執行操作時會去PerpetualCache中的HashMap中根據cacheKey查詢緩存。
二級緩存是使用了裝飾者模式。在SqlSession對象創建Executor對象時,SqlSession會給Executor對象加一個裝飾者:CachingExecutor,然后會將操作數據庫的任務交給CachingExecutor,而CachingExecutor會查找二級緩存中是否有所需要的數據,有就返回,沒有就再將任務交給Executor對象。
總結
以上是生活随笔為你收集整理的关于MyBatis的缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aes 加密_结合RSA与AES实现前后
- 下一篇: 项目搭建Nacos及遇到问题解决