首页 > 其他 > 详细

mybatis_13一级缓存

时间:2019-03-06 12:56:51      阅读:148      评论:0      收藏:0      [点我收藏+]

1. Mybatis的缓存理解

  Mybatis的缓存,包括一级缓存和二级缓存,一级缓存是默认使用的。二级缓存需要手动开启。

  一级缓存指的就是sqlsession,在sqlsession中有一个数据区域,是map结构,这个区域就是一级缓存区域。一级缓存中的key是由sql语句、条件、statement等信息组成一个唯一值。一级缓存中的value,就是查询出的结果对象。

  二级缓存指的就是同一个namespace下的mapper,二级缓存中,也有一个map结构,这个区域就是一级缓存区域。一级缓存中的key是由sql语句、条件、statement等信息组成一个唯一值。一级缓存中的value,就是查询出的结果对象。

 

 

一个唯一值。一级缓存中的value,就是查询出的结果对象。

 技术分享图片

  

2 一级缓存

原理:

 技术分享图片

第一次查询之后, 由sql语句、条件、statement等信息组成一个唯一值作为key存到sqlsession中的map,查询结果作为value:

         如果没有进行其他增删改操作的话,再次查询(同第一次查询条件一样)会自动从sqlsession中读取

         如果进行了其他增删改操作,再次查询会重新执行SQL语句查询

 

3.两次相同查询之间不进行其他数据库操作

 @Test
    public void test() throws IOException {
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession=ssf.openSession();
        UserMapper mapper=sqlSession.getMapper(UserMapper.class);

        User user=mapper.findUserById(1);
        System.out.println("user"+user);
//没有进行其他数据库操作,直接再次查询
        User user2=mapper.findUserById(1);
        System.out.println("user"+user2);

        sqlSession.commit();
        sqlSession.close();
    }

}


 测试结果:

技术分享图片

 

4.两次相同查询之间插入一条记录

@Test

  public void test() throws IOException {

    InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");

    SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);

    SqlSession sqlSession=ssf.openSession();

    UserMapper mapper=sqlSession.getMapper(UserMapper.class);

  

    User user=mapper.findUserById(1);

    System.out.println("user"+user);

  

    //插入一条数据

    User user3=new User();

    user3.setUsername("刘海柱");

    user.setSex("2");

    user.setAddress("单挑王");

    mapper.save(user3);

  

    User user2=mapper.findUserById(10);

    System.out.println("user"+user2);

  

    sqlSession.commit();

    sqlSession.close();

}

 测试结果:

技术分享图片

 


  

mybatis_13一级缓存

原文:https://www.cnblogs.com/aihuadung/p/10482239.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!