• mybatis学习 十一 缓存


    1. 应用程序和数据库交互的过程是一个相对比较耗时的过程
    2. 缓存存在的意义:让应用程序减少对数据库的访问,提升程序运行效率
    3. MyBatis 中默认 SqlSession 缓存(一级缓存)开启

      同一个 SqlSession 对象调用同一个<select>时,只有第一次访问数据库,第一次之后把查询结果缓存到 SqlSession 缓存区(内存)中,缓存的是 statement 对象.(简单记忆必须是用一个<select>),在 myabtis 中一个<select>对应一个 statement 对象,缓存的有效范围必须是同一个 SqlSession 对象。

    总结:mybatis一级缓存(默认),其实就是同一个sqlSession对象且是同一个<select>标签

     

      mybatis的映射文件中的标签中,有一个statementType属性,其值有CALLABLE,PREPARED,STATEMENT,分别代表:调用存储过程,preparedStatement,statement。默认是PREPARED。

    4. Mybatis中的SqlSessionFactory缓存(二级缓存)

      mybatis的二级缓存,是sqlSessionFactory工厂级别的缓存,只要在映射文件中的<mapper>文件下加一个<cache readOnly="true"></cache>就是开启二级缓存

    有效范围:有效范围:同一个 factory 内哪个 SqlSession 都可以获取

    使用场景:当数据频繁被使用,很少被修改

      sqlSession缓存(一级缓存)与sqlSessionFactory缓存(二级缓存)是两个不同的缓存,一级缓存的内容只有在sqlSession调用close或者commit时,一级缓存内容才会放入二级缓存

     

  • 相关阅读:
    题解-CF468E Permanent
    CSP2021 游记
    二项式系数相关
    欧拉反演
    欧拉函数
    [快速幂]1
    GMT绘制地形起伏
    华为mate8双击唤醒屏幕
    回家乡了
    CSP-S2021
  • 原文地址:https://www.cnblogs.com/cplinux/p/9652339.html
Copyright © 2020-2023  润新知