深入理解Mybatis一級緩存
客戶端向資料庫伺服器傳送相同的sql查詢語句,如果每次都去存取資料庫,會導致效能的降低。
那麼怎麼提高呢?
mybatis為我們提供了一級快取的策略
在一個sqlSession開啟和關閉之間,sqlSession對象內部(其實是Executor)會維護一個快取的對象,當查詢資料時候,先從快取中尋找是否存在該條數據,存在就直接取出來,不存在,向資料庫發送sql查詢, 然後將查詢後的數據存入緩存,和返回給程式。
這樣會存在一個問題:
如果在第一次和第二次查詢期間,有程序更改了要查訊的數據庫的數據,就會引起讀取的數據是錯誤的,也就是
臟讀,其實是mybatis在sqlSession執行commit()方法後會清空這個快取。第二次去查詢,還是會從資料庫查詢.
也可以手動呼叫sqlSession的clearCache()方法清除快取
小範例:
@Test public void testCacheLever1() throws Exception{ SqlSession session = factory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); //第一次请求,查询id为1的用户 User user = mapper.findUserById(1); System.out.println(user); //更改数据,会清空缓存 user.setUsername("yyyy"); mapper.updateUser(user); session.commit(); //第二次查询会从缓存中找 User user2 = mapper.findUserById(1); System.out.println(user2); session.close(); }
就清空了。這要怎麼使用快取來提高效率呢?
好了,下篇文章要跟大家介紹mybatis二級快取。
以上所述是小編給大家介紹的Mybatis一級緩存,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對PHP中文網的支持!
更多深入理解Mybatis一級快取相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。
