ssm框架學習---mybatis中快取
阿新 • • 發佈:2019-01-05
快取的目的:將部分資料快取到記憶體中,提高系統的效能
一級快取:它是sqlsession級別的,每個sqlsession物件內部都有一個hashmap用來存放查詢的資料,mybatis中預設時開啟的
(1)當執行查詢時,首先如果是第一次查詢,會從資料庫中查詢並將結果快取到一級快取中,以後再查相同的sql就不再發出sql語句,而是直接從快取中拿
(2)如果在兩次相同的查詢之間,存在inset,update,delete的commit操作,它會清空快取
二級快取: 它是mapper級別的,當然如果兩個mapper.xml檔案對應同一個名稱空間,它們就共用同一個二級快取,確切說二級快取是名稱空間級別的,
(1)當一個sqlsession查詢出資料會快取到二級快取中,其它的sqlsession執行相同的查詢可以從快取中讀取
(2)其它的sqlsession執行了插入、刪除、修改等操作,會清空二級快取
注意點:
(1)首先需要在sqlmapconfig.xml中設定開啟二級快取
(2)需要在mapper.xml中配置快取選項
(3)對於快取的物件需要實現序列化介面,因為二級快取不一定在記憶體中可能其它地方如磁碟或者遠端伺服器上
mybatis和其它分散式快取框架的整合:
mybatis提供了一個cache介面,實現cache介面即可,預設提供的是這個實現類
PerpetualCache
(1)在mapper中cache標籤的type為你所想要使用的實現類,並加入包和對應的第三方的快取的配置檔案等