首頁  >  文章  >  Java  >  深入理解Mybatis二級緩存

深入理解Mybatis二級緩存

高洛峰
高洛峰原創
2017-01-23 09:35:031415瀏覽

上篇文章為大家介紹了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中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn