Mybatis系列之 快取機制

2022-07-29 21:09:08 字數 1434 閱讀 1567

正如大多數持久層框架一樣,mybatis 同樣提供了一級快取二級快取的支援

一級快取: 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flushclose之後,該session中的所有 cache 就將清空

3. 對於快取資料更新機制,當某乙個作用域(一級快取session/二級快取namespaces)的進行了 c/u/d 操作後,預設該作用域下所有 select 中的快取將被clear。

1 packageme.gacl.test;

2 3 importme.gacl.domain.user;

4 importme.gacl.util.mybatisutil;

5 importorg.apache.ibatis.session.sqlsession;

6 importorg.junit.test;

7 8 /**

9 * @authorgacl

10 * 測試一級快取

11 */

12 public classtestonelevelcache

59 }

2、測試二級快取

1 packageme.gacl.test;

2 3 importme.gacl.domain.user;

4 importme.gacl.util.mybatisutil;

5 importorg.apache.ibatis.session.sqlsession;

6 importorg.apache.ibatis.session.sqlsessionfactory;

7 importorg.junit.test;

8 9 /**

10 * @authorgacl

11 * 測試二級快取

12 */

13 public classtesttwolevelcache

36 }

1. 對映語句檔案中的所有select語句將會被快取。

2. 對映語句檔案中的所有insert,update和delete語句會重新整理快取。

3. 快取會使用least recently used(lru,最近最少使用的)演算法來收回。

4. 快取會根據指定的時間間隔來重新整理。

5. 快取會儲存1024個物件

cache標籤常用屬性:

eviction="fifo"size="512" readonly="true"/>

mybatis快取機制

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

MyBatis 快取機制

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

Mybatis 快取機制

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