上篇文章為大家介紹了mybatis一級緩存,有需要的朋友可以參考下。
與一級快取相比,二級快取範圍更大了一些,可以被多個SqlSession所共用。
同樣是發送同樣的查詢sql會先去快取中找,找不到再去查詢資料庫。
每個namespace的mapper都會有自己的一個快取的空間。
如果兩個mapper的namespace相同,執行mapper查詢到的資料將儲存到相同的二級快取.
同樣如果有sqlSession執行了commit 會清空二級快取.
設定檔(不用設定也是預設開啟的):
在sqlMapConfig.xml中:
<setting name="cacheEnabled" value="true"/>
在對應的mapper.xml中:
如果不需要二級緩存,可以在設定二級快取
這樣每次都是從資料庫中讀取
在執行insert,update,delete後會刷新快取(清空快取),可以設定不刷新
一般不予設定,設定可能會導致髒讀.
<select useCache="false"></select>
小範例:
<insert flushCache="false"></insert>
注意此處要進行二級快取的物件必須實現Serilizable接口,因為這些快取資料可能會反序列化寫到硬碟或其他地方。
以上所述是小編給大家介紹的Mybatis二級緩存,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對PHP中文網的支持!
更多深入理解Mybatis二級快取相關文章請關注PHP中文網!