溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyBatis Cache配置

發布時間:2020-08-06 23:53:15 來源:網絡 閱讀:725 作者:zsdnr 欄目:網絡安全

MyBatis提供了一級緩存和二級緩存

配置

全局配置

配置說明默認值可選值
cacheEnabled全局緩存的開關truetrue false
localCacheScope本地緩存,SESSION表示執行的sql結果緩存數據可以在同一個sqlSession共享,
而STATEMENT,則同只有在單條語句會被緩存,
兩條語句不能共享緩存數據
SESSIONSESSION STATEMENT
    <!-- 默認值 --><setting name="cacheEnabled" value="true"/><setting name="cacheEnabled" value="SESSION"/>

Mapper配置

flushCache=true表示該語句的執行結果,會清空本地緩存以及2級緩存
useCache="true"表示該語句的執行結果,會被緩存到到2級緩存
默認值:
<select flushCache="false" useCache="true">
<insert/update/delete flushCache="true">

<cache>:當前Mapper的緩存配置,二級緩存
<cache-ref>:cache只對特定的Namespace使用,即每個namespace使用一個cache實例,如果要多個namespace使用同一個cache實例,則可以使用cache-ref來引用

<cache blocking="" eviction="" flushInterval="" readOnly="" size="" type="">
    <property name="" value=""/>
</cache>
<cache-ref namespace=""/>
cache配置
屬性說明默認值可選值
eviction回收內存策略LRULRU FIFO SOFT WEAK
flushInterval刷新間隔沒設置大于0 (單位:ms)
size緩存對象的數量1024大于0
readOnly如果為true會返回所有調用者同一個實例,盡管提高了性能,
但是需要程序保證實例對象不被修改,如果為false,
則為讀寫緩存,會通過序列化返回緩存對象的一份Copy,
較慢,但是比較安全
falsetrue false
type可以指定自定義緩存,但是該類必須實現
org.apache.ibatis.cache.Cache接口

com....class
自定義緩存
<!-- 該屬性會調用setCacheFile方法(setter),將屬性值注入 --><cache type="com.domain.something.MyCustomCache">
    <property name="cacheFile" value="/tmp/my-custom-cache.tmp"/></cache>

二級緩存整體管理結構:

MapperA.xml

<mapper namespace="com.jabnih.demo.mapper.MapperA">
    <cache /></mapper>

MapperB.xml

<mapper namespace="com.jabnih.demo.mapper.MapperB">
    <cache-ref namespace="com.jabnih.demo.mapper.MapperA"/>
</mapper>

MapperC.xml

<mapper namespace="com.jabnih.demo.mapper.MapperC">
    <cache /></mapper>

如下:
MyBatis Cache配置


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女