本篇文章为你整理了Mybatis缓存机制(mybatis-plus缓存)的详细内容,包含有mybatis的缓存机制 mybatis-plus缓存 mybatisplus缓存 mybaties缓存机制 Mybatis缓存机制,希望能帮助你了解 Mybatis缓存机制。
将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。
Mybatis包括一个非常强大的查询缓存特性,她可以非常方便的定制和配置缓存。缓存可以极大的提高查询的效率
为了提高扩展性,Mybatis定义了缓存接口Cache。我们可以通过实现Cache接口来定义二级缓存
小结:一级缓存默认是开启的,只在一次SqlSession中有效,也就是说拿到链接到关闭连接的那个区间段、
2、二级缓存
如果当前会话关闭了,这个会话对应的一级缓存就没有了,诞生我们想要的是,会话关闭了,一级缓存中的数据被保存到二级缓存中;
!-- 显示的开启全局缓存--
setting name="cacheEnabled" value="true"/
在要使用二级缓存的Mapper.xml中开启
!-- 在当前Mapper.xml中使用二级缓存--
cache /cache
也可以自定义参数
!-- 在当前Mapper.xml中使用二级缓存--
cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true" /cache
会遇到问题:我们需要将实体类序列化,否则就会报错
Error serializing object. Cause: java.io.NotSerializableException: com.lyh.pojo.User
public void UserById(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.userById(1);
System.out.println(user);
System.out.println("--------------------");
System.out.println("全局缓存,二级缓存,会在内存中存储方便查询,提高效率");
UserMapper mapper2 = sqlSession.getMapper(UserMapper.class);
User user2 = mapper2.userById(1);
System.out.println(user2);
sqlSession.close();
}
3、自定义缓存-ehcache(了解即可)
Ehcache是一种广泛使用的开源Java分布缓存,主要面向通用缓存
以上就是Mybatis缓存机制(mybatis-plus缓存)的详细内容,想要了解更多 Mybatis缓存机制的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。