Mybatis 預設的一級快取 與二級快取

2021-09-01 06:19:42 字數 820 閱讀 7452

一級快取

同乙個session 呼叫多次查詢相同的的主鍵獲取資料 發起一次sql語句

/**

* 1級快取

* 同乙個session 呼叫多次查詢相同的的主鍵獲取資料 發起一次sql語句

*/@test

public void text()

二級快取

同乙個sqlsessionfactory 不同的session 必須要把session關閉後 才會把資料放在sqlsessionfactory中;

要是不關閉 會預設一級快取

/**

* * 2級快取

* 同乙個sqlsessionfactory 不同的session 必須要把session關閉後 才會把資料放在sqlsessionfactory中;

* 要是不關閉 會預設一級快取

* */

@test

public void text1()

並且要在xml中設定cache

eviction=「fifo」 //**策略為先進先出

flushinterval=「60000」 //自動重新整理時間60s

size=「512」 //最多快取512個引用物件

readonly=「true」 //唯讀

flushinterval="60000" //自動重新整理時間60s

size=「512」 //最多快取512個引用物件 readonly="true" //唯讀

-->

select * from student where id = #

mybatis一級快取

autowired private sqlsessionfactory sqlsessionfactory autowired test transactional public void test selectall.size log.info 第2次查詢 selectall2.size 同乙個s...

MyBatis 一級快取

本地快取作用域預設為該sqlsession。當session flush或 close後,該session中的所有cache將清空。同一次會話期間,只要查詢過的資料都會儲存在當前sqlsession的乙個map中 key hashcode 查詢sql的id 編寫的sql語句 引數 1.不同的sqls...

mybatis一級快取

mybatis一級快取在沒有使用事務後,本地看不到效果,查詢時還是查詢了兩次資料庫。如下圖所示 開啟事務,在同乙個方法 同乙個回話,一級快取才有效果 transactional public refund getrefundtest long brefundid 加上事務後效果如下 一級快取什麼時候...