springboot+mybatis 开启二级缓存

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下的全部缓存。 
最后 最好不要用二级缓存 建议只是测试使用

发布了48 篇原创文章 · 获赞 7 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/maguoliang110/article/details/89338214
今日推荐