Mybatis緩存機制

一、緩存機制

緩存機制可以減輕數據庫的壓力,原理是在第一查詢時,將查詢結果緩存起來,之後再查詢同樣的sql,不是真的去查詢數據庫,而是直接返回緩存中的結果。緩存可以降低數據庫的壓力,但同時可能無法得到最新的結果數據。在Mybatis框架中,爲我們設提供了兩種緩存機制。一個是一級緩存,另一個是二級緩存。一級緩存是默認開啓的。

二、一級緩存

Mybatis的一級緩存,只在一個事務中有效,即同一個事務中先後執行多次同一個查詢,只在第一次真正去查庫,並將結果緩存,之後的查詢都直接獲取緩存中的中數據。如果是不同的事務,則緩存是隔離的,還是要去查詢的。

Mybatis的一級緩存,默認是開啓的,而且無法手動關閉。

三、二級緩存

二級緩存,在全局有效,一個事務查詢一個sql得到結果,會被緩存起來,之後只要緩存未被清除,則其他事務如果查詢同一個sql,得到的將會是之前緩存的結果。

二級緩存作用範圍大,作用時間長,可能造成的危害也更大,所以在開發中一般很少啓用Mybatis的二級緩存。

開啓二級緩存

【1】首先,在sqlMapperConfig.xml配置文件中,配置setting標籤,將之放置在所有配置的最前面。

<settings>
        <setting name="cacheEnabled" value="true"/>
</settings>

【2】在需要二級緩存的,映射文件中書寫<cache/>,表示該映射文件中,所有操作,將執行二級緩存機制。

<cache/>

【3】使用二級緩存的bean,必須實現serializable接口

 

 

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