Mybatis一级缓存

Mybatis一级缓存

mybatis一级缓存是session级别的缓存,是不用我们进行配置的mybatis自动进行管理的。

mybatis一级缓存是不跨session的。

在一个session之内查询到的每个结果mybatis会给每个结果一个唯一标识。当第二次查找的时候,首先会在session中进行查找(根据唯一标识查找),如果能找到就直接拿,找不到就在数据库中发出sql进行查找(会使用一定的时间)

特别注意在一个session之内变更数据会清理掉缓存(仅仅对当前结果集有影响)。而不是像hibernate一样做同步(也跟着进行更新操作)。

代码实例

注意一级缓存必须得在一个session中才有效,它不跨session

  @Test
    public void testCache(){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            //需要执行sql从数据库中查询
            Person person  = session.selectOne("mapper.PersonMapper.selectOne",1);
            //不需要执行sql从一级缓存中取
            Person person1  = session.selectOne("mapper.PersonMapper.selectOne",1);
            System.out.println(person);
            System.out.println(person1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值