Mybatis中的一级缓存和二级缓存
        一级缓存:
            它指的是Mybatis中SqlSession对象的缓存。
            当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供一块区域中。
            该区域的结构是一个Map。当我们再次查询同样的数据,mybatis会先去sqlsession中
            查询是否有,有的话直接拿出来用。
            当SqlSession对象消失时,mybatis的一级缓存也就消失了。
创建新项目


复制pom.xml的依赖


导入一对多的代码


只需要演示缓存,很多代码不需要。 删除IAccountDao


Account和AccountUser删除

测试类中的删除AccountTest删除


因为没有account。所以这里resultMap可以删除掉。

返回的这里改成resultType="user" 而不用resultMap


 查询两次id为41的 判断 两个结果集的引用地址是否为一个

把实体类重写的toString方法先注释掉。


测试方法。运行结果。地址为同一个

只发起了一次查询


再次执行测试方法
对象的引用只不再是同一个

获取了两次SqlSession对象。执行两次select查询

当SqlSession消失时我们的一次缓存也消失了

clearCache



虽然是一个SqlSession但是 是两次查询


相关文章:

  • 2021-12-11
  • 2022-02-28
  • 2022-01-14
  • 2022-01-24
  • 2021-06-11
  • 2021-07-26
  • 2021-07-02
猜你喜欢
  • 2021-06-23
  • 2021-07-24
  • 2021-08-16
  • 2022-01-25
  • 2021-05-21
  • 2021-12-12
  • 2021-09-18
相关资源
相似解决方案