1、該級快取預設開啟,不能關閉;
2、該級快取為sqlsession級別的快取,也稱為本地快取;
3、以下4種情況將會導致該級快取失效:
a、在不同sqlsession中查詢資料;
public執行結果:同乙個sqlsession中快取成功,不同的sqlsession快取失效class
test
catch
(ioexception e) }}
b、相同sqlsession中查詢資料,但查詢條件不同
public執行結果:class
test
catch
(ioexception e) }}
c、相同sqlsession中查詢資料,但兩次查詢之間執行了增刪改操作
public執行結果:class
test
catch
(ioexception e) }}
d、相同sqlsession中查詢資料,但第二次查詢前,程式呼叫sqlsession物件clearcache()方法手動清除了一級快取
public執行結果:class
test
catch
(ioexception e) }}
1、該級快取預設不開啟,但如果使用二級快取需要在每個xml對映檔案中新增
以配置該級快取(相應實體類要序列化)。二級快取可以通過在全域性配置檔案配置setting標籤來關閉該級快取。
如果這樣配置的話,很多其他的配置就會被預設進行,如:
可以在開啟二級快取時候,手動配置一些屬性
各個屬性意義如下:
2
、該級快取為namespace級別的快取
3、工作機制:通過sqlsession查詢資料,這些資料將會放到當前會話的一級快取中;如果當前會話關閉,則一級快取中的資料會被儲存到二級快取中,此後新的sqlsession將從二級快取中查詢資料;
public執行結果:class
test
catch
(ioexception e) }}
4、select標籤的usecache屬性用於設定是否使用二級快取;insert、update、delete或select標籤均有flushcache屬性,其中增刪改預設true,即sql執行以後,會同時清空一級和二級快取,查詢預設false。
public執行結果:class
test
catch
(ioexception e) }}
。為了提公升查詢效率,提高使用者體驗,mybatis提供了資料快取支援,依據資料快取的有效範圍預設定義了一級快取和二級快取
Mybatis一級快取與二級快取
正如大多數持久層框架一樣,mybatis 同樣提供了一級快取和二級快取的支援 一級快取 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush或close之後,該session中的所有 cache 就將清空。3.對於快取資料更新機制,...
Mybatis 一級快取與二級快取
一級快取 1 使用範圍 從sqlsession會話開始到結束 2 使用 預設開啟,無法關閉 3 測試使用 需要開啟日誌觀察資料庫的連線情況 public static void maintest result true,將結果集列印,可以看出兩次結果集列印之間是沒有再做資料庫連線的 4 快取失效的4...
mybatis框架一級和二級快取
因為有些時候查詢資料的頻率很高,很耗費資料庫資源,所有常常把變動不大且訪問率高的資料放在乙個快取容器裡,從而緩解資料庫壓力。存在時間 sqlsession類例項物件存在時,一級快取一直存在,在這期間除非了修改,新增,刪除,執行commit,close,flush clearcache時,快取才會被清...