mybatis 預設開啟一級快取,sqlsession 級別的,它會出現髒讀的情況,比如說你在乙個service 方法中執行了三個sql語句,
第乙個查詢sql語句,第二個更新sql語句,第三個查詢sql語句,
第一次執行查詢sql語句的時候會將sql和對應的結果集儲存在乙個hashmap中,但是更新sql語句的時候並沒有更新快取的結果集,所以在第三次查詢的時候很可能會出現髒讀的情況
mybatis 預設開啟一級快取,屬於sqlsession 級別的
優點:在一次會話中,執行多次相同的sql語句,會直接從快取中獲取結果,但是不同的sqlsession不行,即使是執行同乙個sql語句。
缺點:一級快取會發生髒資料,是因為一級快取不能跨會話共享,這就會導致在更新資料的時候,其它會話讀的是老資料。
一級快取關閉:可以在這種方式關閉
MyBatis快取技術
禁用二級快取 重新整理快取 org.mybatis.cachesgroupid mybatis ehcacheartifactid 1.0.2version dependency 第二步 引入快取配置檔案 classpath下 src下 新增 ehcache.xml xsi nonamespaces...
MyBatis快取技術
為了提公升查詢效率,提高使用者體驗,mybatis提供了資料快取支援,依據資料快取的有效範圍預設定義了一級快取和二級快取 1 該級快取預設開啟,不能關閉 2 該級快取為sqlsession級別的快取,也稱為本地快取 效果如下 public static void main string args c...
MyBatis 快取 上 一級快取
在實際專案中,有些情況下相同的查詢語句可能被重複執行,mybatis 提供了一級快取來優化這種情況,相同的查詢 sql 會命中一級快取,直接返回,減少不必要的資料庫查詢提高效能。上面提到了資料庫 crud 操作最終都對映到了executor query和executor update方法上,當資料庫...