為什麼使用快取
將從資料庫中查詢出來的資料快取起來,快取介質:記憶體、磁碟,從快取中取資料,而不從資料庫查詢,減少了資料庫的操作,提高了資料處理效能
一級快取
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 加上事務後效果如下 一級快取什麼時候...