緩存
一級(jí)緩存屬于會(huì)話級(jí)別(sqlSession)
sqlSession.close();會(huì)關(guān)閉會(huì)話
一級(jí)緩存默認(rèn)開啟,無法關(guān)閉
如果開啟了二級(jí)緩存,先去二級(jí)緩存當(dāng)中嘗試命中
如果也無法命中,則嘗試去一級(jí)緩存當(dāng)中嘗試命中
還不命中,再去數(shù)據(jù)庫查詢
緩存失效方式
查詢之后進(jìn)行增刪改的行為,緩存將失效
-
強(qiáng)制清空緩存
sqlSession.clearCache();
開啟二級(jí)緩存
mybaits.cfg.xml
<settings>
<!--解決數(shù)據(jù)庫下劃線如user_name命名而java的駝峰命名如userName不匹配的問題-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="logImpl" value="LOG4J"/>
<!--開啟二級(jí)緩存-->
<setting name="cacheEnabled" value="true"/>
</settings>
mapper.xml
<!--開啟二級(jí)緩存-->
<!--FIFO類似隊(duì)列,先存的先清
flushInterval代表刷新間隔
size代表引用數(shù)目
readOnly是否只讀-->
<cache
eviction="FIFO"
flushInterval="60000"
size="512"
readOnly="true"/>