mybatis框架一級和二級快取

2021-09-25 10:33:54 字數 1119 閱讀 1630

因為有些時候查詢資料的頻率很高,很耗費資料庫資源,所有常常把變動不大且訪問率高的資料放在乙個快取容器裡,從而緩解資料庫壓力。

存在時間

sqlsession類例項物件存在時,一級快取一直存在,在這期間除非了修改,新增,刪除,執行commit,close,flush ,clearcache時,快取才會被清空。

當查詢資料時,會先到一級快取查詢,如果沒有相關資料,會到資料庫查詢,然後儲存到一級快取。

一級快取開啟配置

一級快取是mybatis預設開啟的

如果要關閉,在crud標籤體內增加 usrcache=「true/false」

二級快取開啟配置

sqlmapconfig.xml配置

>

name

="cacheenabled"

value

="true"

/>

settings

>

/>

嗯,在二級快取測試過程中,

我已經照著上面把二級快取開啟了,

可是沒有達到從快取中取出資料

而是兩次查詢了資料庫

測試類

public

class

secondlevelcachetest

@after

//用於在測試方法執行之後執行

public

void

destroy()

throws exception

/** * 測試一級快取

*/@test

public

void

testsecondlevelcache()

}

四處跪求原因終於找到,二級快取只有當,關閉sqlsession的時候才會存入二級快取空間

測試**修改如下,可以更加深入了解二級快取

//進修改這裡

@test

public

void

testsecondlevelcache()

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

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

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

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

MyBatis框架一級快取與二級快取

1 該級快取預設開啟,不能關閉 2 該級快取為sqlsession級別的快取,也稱為本地快取 3 以下4種情況將會導致該級快取失效 a 在不同sqlsession中查詢資料 public class test catch ioexception e 執行結果 同乙個sqlsession中快取成功,不...