Mybatis缓存

Mybatis一级缓存:

  默认是开启一级缓存的,目的是降低数据库的压力。

一级缓存的命中原则:

  1、statementId,技术脚本和条件参数一致,statementId不一样同样不会命中。

  2、要求传递给sql的最终参数相同。

  3、分页参数的条件如果不同依然不能命中。

  4、sql语句相同。

  5、执行环境必须象同(缓存只存在一次sqlsession内)。

Mybatis的一级缓存的生命周期:

  与xml的标签无关而与sqlSession调用的方法有关,执行session.commit方法缓存会被清空,rollback方法缓存也会被清空,update更新缓存也会被清空(与表无关),clearCache也会清空缓存。

  获取session->执行查询->关闭session

Mybatis的脏读(读未提交)/不可重复读(读提交)问题的理解

  Mybatis的的一级缓存的生命周期是在一次数据库事务的生命周期内,因此Mybatis的脏读是不存在的,Bybatis的事务隔离级别反而提升了事务隔离级别。

原文地址:https://www.cnblogs.com/niuyg928/p/12950341.html