Mybatis缓存机制(mybatis-plus缓存)

  本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: