MyBatis 快取機制

2021-08-18 09:15:11 字數 535 閱讀 7030

mybatis 提供了查詢快取來獲取資料,以提高查詢的效能。mybatis 的快取分為一級快取和二級快取。

1、一級快取一級快取是 sqlsession 級別的快取,是基於 hashmap 的本地快取。不同的 sqlsession 之間的快取資料區域互不影響。當同乙個 sqlsession 執行兩次相同的 sql 語句時,第一次查詢執行完後會將資料庫中的資料寫到快取,第二次查詢時直接從快取獲取。當 sqlsession 執行 insert、update、delete 操作並提交到資料庫時,會清空快取,保證快取中的資訊是最新的。mybatis 預設開啟一級快取。

2、二級快取

mybatis 預設沒有開啟二級快取,開啟只需在配置檔案中寫入如下**:

mybatis快取機制

mybatis和hibernate一樣,也提供了一二級快取。若存在一二級快取,則資料不會去資料庫互動,而是去記憶體中獲取。一級快取是sqlsession級別的快取。在運算元據庫時需要構造sqlsession物件,在物件中有乙個資料結構 一般來說是hashmap 來儲存快取資料。不同的sqlsessi...

Mybatis 快取機制

查詢快取主要是為了提高查詢訪問速度,即當使用者執行一次查詢後,會將該資料結果放到快取中,當下次再執行此查詢時就不會訪問資料庫了而是直接從快取中獲取該資料。如果在快取中找到了資料那叫做命中。同一sqlsession 多次查詢同一sql時會使用快取 test public void testlocalc...

mybatis快取機制

一 一級快取 本地快取預設開啟 sqlsession級別的快取。一級快取是一直開啟的,無法關閉。sqlsession級別的乙個map 與資料庫同義詞會話期間查詢到的資料會放到本地快取中。以後如果需要獲取相同的資料,直接從快取中拿,沒有必要再去查詢資料庫。1.一級快取失效情況 沒有使用到當前一級快取的...