Mybatis一級快取二級快取

2021-10-05 15:21:18 字數 797 閱讀 5399

範圍:同乙個sqlsession物件

過程:(1)向資料庫傳送sql語句查詢張三

(2)並將張三放入一級快取中

(1)直接從一級快取中獲取張三

mybatis預設開啟 一級快取,如果用同樣的sqlsession物件查詢相同的資料時,則只會在第一次查詢時向資料庫傳送sql語句,並將查詢的結果放在sqlsession中(作為快取),後續再次查詢該同樣的物件時,則直接從快取中查詢該物件即可(省略了資料庫的訪問,提高效能)

範圍:同乙個namespace

過程:(1)向資料庫傳送sql語句查詢李四

(2)並將李四放入一級快取中

(3)第n次查詢則直接從一級快取中獲取

(1)如果二級快取中沒有李四,則此次查詢需要重新向資料庫傳送sql語句

(2)雖然一級快取中有李四,但是是由sqlsession1共享的,sqlsession2是不共享的,所以sqlsession2需要重新向資料庫中傳送sql語句

(3)如果sqlsession查詢完李四後,執行了close()方法,則將李四放入了二級快取中,又因為sqlsession1和sqlsession2的根源是同乙個namespace,所以共享二級快取,所以現在查詢李四,則直接從二級快取中獲取,不需要向資料庫傳送sql語句了

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語...