MyBatis之一級快取及其一級快取失效

2022-05-18 05:35:57 字數 545 閱讀 5294

定義:

一級快取:本地快取:與資料庫同一次會話(sqlsession)期間查詢到的資料會放在本地快取中,如果以後要獲取相同的資料直接從快取中獲取,不會再次向資料庫查詢資料

乙個sqlsession擁有乙個一級快取

mybatis一直開啟一級快取,不同的sqlsession級別的快取,資料不可以共用

一級快取失效情況:(沒有使用當前一級快取的情況,如果沒有使用,效果就是第二次查詢相同的語句還需向資料庫傳送sql)

1.sqlsession不同

2.當sqlsession物件相同的時候,查詢的條件不同,,原因是第一次查詢時候一級快取中沒有第二次查詢所需要的資料

3.當sqlsession物件相同,兩次查詢之間進行了插入的操作

4.當sqlsession物件相同,手動清除了一級快取中的資料

MyBatis入門之一級快取

mybatis的一級快取作用域是sqlsession的,所以,對於同乙個sqlsession,相同的查詢,只有在第一次查詢的時候才會到資料庫查詢,其餘都是從快取中拿。但是,如果兩次查詢之間,發生了資料更新 包括增 刪 改 操作,則會清除快取。mybatis預設是開啟一級快取的。此外,如果 1 關閉s...

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...