mybatis 13一級快取

2022-06-18 22:00:26 字數 877 閱讀 5185

mybatis的快取,包括一級快取和二級快取,一級快取是預設使用的。二級快取需要手動開啟。

一級快取指的就是sqlsession,在sqlsession中有乙個資料區域,是map結構,這個區域就是一級快取區域。一級快取中的key是由sql語句、條件、statement等資訊組成乙個唯一值。一級快取中的value,就是查詢出的結果物件。

乙個唯一值。一級快取中的value,就是查詢出的結果物件。

第一次查詢之後, 由sql語句、條件、statement等資訊組成乙個唯一值作為key存到sqlsession中的map,查詢結果作為value:

如果沒有進行其他增刪改操作的話,再次查詢(同第一次查詢條件一樣)會自動從sqlsession中讀取

如果進行了其他增刪改操作,再次查詢會重新執行sql語句查詢

@test

public

void test() throws

ioexception

}

測試結果:

測試結果:

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 加上事務後效果如下 一級快取什麼時候...