mybatis的一級快取

2021-07-31 17:32:52 字數 435 閱讀 6169

為什麼使用快取

將從資料庫中查詢出來的資料快取起來,快取介質:記憶體、磁碟,從快取中取資料,而不從資料庫查詢,減少了資料庫的操作,提高了資料處理效能

一級快取

mybatis預設提供一級快取,快取範圍是乙個sqlsession

在同乙個sqlsession中,兩次執行相同的sql查詢,第二次不再從資料庫查詢

執行提交清除快取:

如果第一次查詢後,執行commit提交,

mybatis

會清除快取,第二次查詢從資料庫查詢。

一級快取的原理

一級快取採用hashmap儲存,

mybatis

執行查詢時,從快取中查詢,如果快取中沒有從資料庫查詢。

如果該sqlsession執行

commit()

提交,清除快取。

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