MyBatis 快取機制

2022-09-02 04:24:15 字數 640 閱讀 2996

mybatis 有兩級快取:

一級快取:

也稱為本地快取,sqlsession級別的快取。一級快取是一直開啟的;

與資料庫同一次會話期間查詢到的資料會放在本地快取中,以後如果需要獲取相同的資料,直接從快取中拿,沒必要再去查詢資料庫

一級快取失效情況:

1、sqlsession 不同

2、sqlsession 相同,查詢條件不同

3、sqlsession 相同,兩次查詢之間執行了增刪改操作

4、sqlsession 相同,手動清除了一級快取

二級快取:

全域性快取,namespace 級別的快取,乙個 namespace 對應乙個二級快取

工作機制:

1、乙個會話,查詢一條資料,這個資料就會被放在一級快取中

2、如果快取關閉,一級快取中的資料會被儲存到二級快取中。新的會話查詢資訊,就可以參照二級快取中的內容

3、不同 namespace 查出的資料會被放在自己對應的快取中

注意:資料從二級快取中獲取

查出的資料會被預設先放在一級快取中,只有會話提交或者關閉後,一級快取中的資料才會提交到二級快取中

使用:1、開啟全域性快取配置:cacheenabled設為 true

3、我們的 pojo 需要實現序列化介面

mybatis快取機制

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

MyBatis 快取機制

mybatis 提供了查詢快取來獲取資料,以提高查詢的效能。mybatis 的快取分為一級快取和二級快取。1 一級快取一級快取是 sqlsession 級別的快取,是基於 hashmap 的本地快取。不同的 sqlsession 之間的快取資料區域互不影響。當同乙個 sqlsession 執行兩次相...

Mybatis 快取機制

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