七 MyBatis中的一級快取和二級快取

2021-10-06 11:18:26 字數 372 閱讀 8689

一級快取是針對於sqlsession物件進行快取的,當執行兩次相同的查詢語句時,第一次查詢將會把資料寫在

記憶體中,第二次直接從快取中取資料。

使用場景:

當兩次查詢中間執行了增刪改,commit,以及close和clearcache操作時,快取會清空!

指的是mybatis中sqlsessionfactory物件的快取,由同乙個sqlsessionfactory建立的物件共享其快取。
使用步驟在一級快取中的是物件,所以每次獲取的物件都是同乙個,在二級快取中的是資料,所以每次獲取都會分配乙個新的物件來,但這些不同的物件是從快取中獲取的,並不是從資料庫中獲取!

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