zoukankan      html  css  js  c++  java
  • 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时,一级缓存内容才会放入二级缓存

     

  • 相关阅读:
    Sublime Text 3 安装插件管理 Package Control
    Sublime Text 2&3中输入法不跟随光标移动的问题的解决方法
    Centos 7 yum 安装php
    Centos 7 yum 安装Apache
    正则验证多个邮箱用分号隔开
    Linux下修改网卡IP、DNS和网关
    mysqldump when doing LOCK TABLES问题
    jQuery遍历json
    Yii中CDbCriteria常用方法
    Parse error: syntax error, unexpected T_PUBLIC in 问题解决
  • 原文地址:https://www.cnblogs.com/cplinux/p/9652339.html
Copyright © 2011-2022 走看看