Mybatis缓存——二级缓存,闭关60天学懂NDK+Flutter
二级缓存是MyBatis中的一个特性,它可以在namespace层面进行缓存,并且可以跨会话共享。二级缓存的生命周期长于一级缓存(即session缓存),能够在多个会话中共享。
在MyBatis配置文件中启用二级缓存:
<settings>
<!-- 开启二级缓存 -->
<setting name="cacheEnabled" value="true"/>
</settings>
在Mapper.xml中开启二级缓存:
<mapper namespace="YourMapper">
<!-- 开启二级缓存 -->
<cache/>
...
</mapper>
使用二级缓存时,需要保证缓存的对象是可序列化的。
示例代码:
// 假设有一个User类,并且此类实现了Serializable接口
public class User implements Serializable {
private Integer id;
private String name;
// getters and setters
}
// Mapper接口
public interface UserMapper {
User selectUserById(Integer id);
}
// Mapper.xml
<mapper namespace="UserMapper">
<cache/>
<select id="selectUserById" parameterType="Integer" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
在上述配置下,当你查询用户信息时,第一次查询会从数据库中获取数据,并将数据存入二级缓存。随后的查询会从二级缓存中获取数据,直到会话结束或缓存失效。
注意:二级缓存应用场景需谨慎,只有当数据变更不频繁,数据一致性要求不严格,且数据允许存在中间状态时,才适合使用二级缓存。
评论已关闭