Mybatis相关知识点整理

一级缓存二级缓存:

我的理解:

  • 一级缓存就是sqlsession执行某个sql,会把这个执行的结果缓存起来,如果下次还有相同的sql和参数过来进行查询,并不会去查询数据库,而是直接拿缓存中的结果,如果有sql对结果进行了修改,那么缓存失效,会去数据库中进行查询
    • sql相同包括参数相同,查询结果集相同,传入的statementId相同
    • 注意!!!如果和spring整合后,没有添加事务,缓存是失效的
    • 作用域是一个sqlsession,sqlsession失效后,缓存也就失效了
  • 二级缓存的作用域是整个namespace空间,二级缓存被同一个namespace下面的sqlsession所共享,namespace下的所有sql都影响着一个共同的缓存。

你可能感兴趣的:(面试知识点整理)