springboot+mybatis 开启二级缓存

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maguoliang110/article/details/89338214

mybatis 二级缓存在数据没有更新修改的情况下默认保存的作用域namespace


1 首先要在引入数据源的地方添加开启mybatis缓存
 

 // 读取配置
        sqlSessionFactoryBean.setTypeAliasesPackage("com.*.*.*.model");
         //-----------------------mybatis second cache start------------------------------
        org.apache.ibatis.session.Configuration ibatisConfiguration = new org.apache.ibatis.session.Configuration();
        ibatisConfiguration.setCacheEnabled(true);
        sqlSessionFactoryBean.setConfiguration(ibatisConfiguration);
	//-------------------------mybatis second cache end----------------------------
        //设置mapper.xml文件所在位置
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath:com/*/*Mapper.xml");
        sqlSessionFactoryBean.setMapperLocations(resources);

2 然后

          1)当sql写在mybatis 注解里面 则在对应的类上加@CacheNamespace注解 标记未开启二级缓存
          2) 当时xml文件配置sql 则只要在对应的mapper.xml 文件mapper标签内加入<cache></cache> 当有的方法禁用二级缓存则对应的<select ... useCache="false">加入
 useCache="false"属性

 3 最后要实现二级缓存的实体类必须实现序列化  implements Serializable
:只能在【只有单表操作】的表上使用缓存
insert,update,delete操作会清空所在namespace下的全部缓存。 
最后 最好不要用二级缓存 建议只是测试使用

展开阅读全文

没有更多推荐了,返回首页