-
MyBatis二級緩存的命中原則:和一級緩存一樣
在同一個SqlSessionFactory內
StatementID
查詢參數(shù)
分頁參數(shù)
SQL語句
環(huán)境
查看全部 -
步驟三:在TempEntity實現(xiàn)Serializable接口。
查看全部 -
步驟二:在tempMapper.xml中,加上<cache/>標簽。
查看全部 -
在一級緩存代碼基礎上,開啟二級緩存
步驟一:修改Mybatis.xml文件
查看全部 -
二級緩存的測試部分代碼
查看全部 -
開啟二級緩存的步驟
修改MyBatis.xml 和 mapper.xml 文件
查看全部 -
二級緩存各個Session共用cache緩存。
查看全部 -
對比一級緩存
一級緩存每個Session有自己的cache緩存。
查看全部 -
MyBatis與Spring集成
未開啟事務
每次請求,Spring都會關閉舊的session在創(chuàng)建新的session,所以此時一級緩存無效。
開啟事務
在一個事務內,Spring通過ThreadLocal始終使用同一個session,所以此時一級緩存在事務內有效。
查看全部 -
MyBatis一級緩存的設計理念
MyBatis一級緩存是在一個Session內有效的。
一級緩存在一個Session內,有以下特性:
不過期:只要SqlSession存在,沒有關閉、提交...這個緩存一直存在。
不更新:Update時只直接清空這個緩存,而不是更新這個緩存的實例。
不限制:不限制一級緩存實例對象的數(shù)量。
由于不限制實例對象的數(shù)量,故可能會占用大量內存,但實際不用擔心:
一般情況下Session的生存時間很短
執(zhí)行Update會銷毀緩存
支持主動銷毀緩存
核心:控制Session生存時間?。?!
查看全部 -
Update更新,清空緩存? 對應代碼,如圖
包含update、instert、delete
查看全部 -
Rollback回滾,清空緩存? 對應代碼,如圖
查看全部 -
Commit提交,清空緩存? 對應代碼,如圖
查看全部 -
緩存Session關閉,清空緩存 對應代碼,如圖
查看全部 -
一級緩存的五個命中原則 對應的代碼,如圖
查看全部
舉報