Mybatis——二级缓存

一、xml 配置

➀ sqlConfig.xml 配置手动开启二级缓存

    <settings>
          <!-- 开启二级缓存 -->
          <setting name="cacheEnabled" value="true" />
    </settings>

➁ mapper.xml 配置标签:<cache/> 

    若要指定的sql不使用二级缓存,在其标签上设置 useCache="false"

➂ 返回实体要实现序列化接口

二、接口注解配置

       

@CacheNamespace
public interface ISecondMapper {

    @Select("select * from userinfo where id = #{id}")
    UserInfo findUserInfo(Integer id);
}

示例:

public class TestCacheUtil {

    private SqlSessionFactory sqlSessionFactory;

    @Before
    public void before() throws IOException {
        String path = "SqlConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(path);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }


    @Test
    public void test3(){
        SqlSession session1 = sqlSessionFactory.openSession();
        SqlSession session2 = sqlSessionFactory.openSession();

        UserMapper mapper1 = session1.getMapper(UserMapper.class);
        UserMapper mapper2 = session2.getMapper(UserMapper.class);

        UserInfo user1 = mapper1.findUserById(1);
        // 关闭 session, 若使用 session1.clearCache();
        // 关闭一级缓存的同时,也会关闭二级缓存
        session1.close();
        UserInfo user2 = mapper2.findUserById(1);
    }
}

备注:一般不建议使用二级缓存

           1、二级缓存无法满足分布式服务

           2、针对多表查询,二级缓存往往会导致查询数据不准确

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值