目錄
一級快取:
什麼是一級快取?
一級快取的生命週期?
開發時,如何才能真正用到一級快取?
二級快取
什麼是二級快取?
二級快取的生命週期?
如何才能用到二級快取?
開啟二級快取:
mybatis一級快取實際上就是乙個依賴於sqlsession的快取物件,perpetualcache裡面的結構很簡單,通過乙個k-v結構的cache維護快取資料。
一級快取預設開啟
public class perpetualcache implements cache {
private final string id;
private mapcache = new hashmap();
perpetualcache的生命週期是和sqlsession相關的,即只有在同乙個sqlsession中,一級快取才會用到。
我們經常在某個方法中進行多次資料庫查詢,在實際場景中,每次的資料庫查詢都會開啟乙個新的會話(sqlsession)。這種情況下我們是沒有用到一級快取的,因為根本就沒有復用到sqlsession。
那麼我們怎樣控制程式復用sqlsession,使get()能用到一級快取呢?
其中一種辦法就是開啟乙個事務:
這條sql查詢語句只執行了一次。
二級快取 底層還是 hashmap 架構。
開啟二級快取還必須pojo物件要實現serializable介面,否則會丟擲異常。 mybatis快取 一級快取,二級快取
什麼是快取 為什麼使用快取 適用於快取的資料 二級快取的使用步驟 在主配置檔案配置 name cacheenabled value ture 讓當前的操作支援快取 在對映檔案中 select 標籤中配置 在select標籤中 新增乙個屬性 userscache true 先建立出乙個sqlsessi...
Mybatis快取(一級快取 二級快取)
mybatis快取分為一級快取 二級快取。mybatis一級快取預設是開啟的 二級快取全域性開關預設也是開啟的,但需要配置cachenamespace才可生效!以mybatis plus為例 mybatis plus configuration log impl org.apache.ibatis....
mybatis一級快取 二級快取
一級快取基於sqlsession,是預設開啟的,在運算元據庫時需要構造sqlsession物件,在物件中有乙個hashmap用於儲存快取資料。不同的sqlsession之間快取資料區域是互相不影響的。一級快取的作用域是sqlsession範圍的,當在同乙個sqlsession中執行兩次相同的sql語...