Mybatis一級快取與二級快取

2021-09-10 22:53:02 字數 1389 閱讀 5711

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

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

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

1 package me.gacl.test;

2 3 import me.gacl.domain.user;

4 import me.gacl.util.mybatisutil;

5 import org.apache.ibatis.session.sqlsession;

6 import org.junit.test;

7 8 /**

9 * @author gacl

10 * 測試一級快取

11 */

12 public class testonelevelcache

59 }

2、測試二級快取

1 package me.gacl.test;

2 3 import me.gacl.domain.user;

4 import me.gacl.util.mybatisutil;

5 import org.apache.ibatis.session.sqlsession;

6 import org.apache.ibatis.session.sqlsessionfactory;

7 import org.junit.test;

8 9 /**

10 * @author gacl

11 * 測試二級快取

12 */

13 public class testtwolevelcache

36 }

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

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

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

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

5. 快取會儲存1024個物件

cache標籤常用屬性:

關閉二級快取 Mybatis一級快取 二級快取詳講

首先,我們先看一下這個標題 查詢快取 那就說明跟增 刪 改是沒有任何關聯的,只有在查詢時,才會遇到快取,增刪改不涉及!查詢快取目前mybatis中提供了兩個,分別是 一級快取 二級快取 所以,sqlsession的快取,是屬於一級快取 那,又有什麼用呢?比如,我們現在資料庫中有兩條資料,分別是張三跟...

mybatis查詢快取之一級快取和二級快取詳細解析

一級快取是mybatis預設就幫我們開啟的,我們不需要多做配置,但是我們得知道其中原理,否則我們也不知道怎麼使用,也不知道我們到底有沒有一級快取。上面第二部分說過一級快取的作用域是同乙個sqlsession,sqlsession的作用就是建立和資料庫的會話,我們對資料庫表的增刪改查都是通過sqlse...

Mybatis 一級快取與二級快取

一級快取 1 使用範圍 從sqlsession會話開始到結束 2 使用 預設開啟,無法關閉 3 測試使用 需要開啟日誌觀察資料庫的連線情況 public static void maintest result true,將結果集列印,可以看出兩次結果集列印之間是沒有再做資料庫連線的 4 快取失效的4...