關於mybatis一級、二級緩存的快速記憶

一級緩存,sqlsession級別,默認開啓,數據庫會話結束,它就自然消亡,即,sqlsession.close(),會釋放掉一級緩存PerpetualCache對象,一級緩存將不可用。

另外,調用了clearCache(),會清空PerpetualCache對象中的數據,但是該對象仍可使用,同時,SqlSession中執行了任何一個update操作(update()、delete()、insert()) ,都會清空PerpetualCache對象的數據,但是該對象可以繼續使用。

二級緩存是Application級別的緩存,默認是不開啓的,二級緩存需要進行配置,POJO必須是可序列化的。 也就是要求實現Serializable接口,映射XML文件配置配置<cache/>。

注意事項:

所有select語句將會被緩存

所有insert、update和delete語句會刷新緩存

使用默認的Least Recently Used(LRU,最近最少使用的)算法來收回

緩存不會以任何時間順序來刷新

緩存會存儲列表集合或對象(無論查詢方法返回什麼)的1024個引用

緩存會被視爲是read/write(可讀/可寫)的緩存,意味着對象檢索不是共享的,而且可以安全的被調用者修改,不干擾其他調用者或線程所做的潛在修改。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章