MyBatis將數據緩存設計成兩級結構,分爲一級緩存、二級緩存:java
第一步:在mybatis的全局配置文件中配置: spring
<settings>
<!-- 開啓二級緩存 -->
<setting name="cacheEnabled" value="true"/>
</settings>
複製代碼
第二步:在要使用二級緩存的mapper中添加配置: sql
<cache/>
複製代碼
第三步:將mapper對應的java實體進行序列化(實現 java.io.serializable接口,若是不實現則拋出異常:Cause: java.io.NotSerializableException),二級緩存能夠將內存的數據寫到磁盤,存在對象的序列化和反序列化,因此要實現java.io.serializable接口。 若是結果映射的pojo中還包括了pojo,都要實現java.io.serializable接口。(常常忘記這步驟,請注意)數據庫
<select id="findOrderListResultMap" resultMap="ordersUserMap" useCache="false">
複製代碼
<update id="updateUser" parameterType="cn.itcast.mybatis.po.User" flushCache="false"> update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
</update>
複製代碼
配置方式:緩存
<cache
//緩存回收策略
eviction="FIFO"
//緩存刷新間隔
flushInterval="60000"
size="512"
readOnly="true"/>
複製代碼