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"/>
复制代码