zoukankan      html  css  js  c++  java
  • MyBatis中的缓存1

    1、应用程序和数据库交互的过程是一个相对比较耗时的过程

    2、缓存存在的意义:让应用程序减少对数据库的访问,提升程序运行的xiaolv

    3、MyBatis中默认SqlSession缓存开启

      3.1  同一个SqlSession对象调用同一个<select>时,只有第一次访问数据库,第一次之后把查询结果缓存到SqlSession缓存区(内存)中

      3.2 缓存的是statement对象,(简单记忆:必须是用一个<select>)

        3.2.1在Mybatis时 一个<select>对应一个statement对象

      3.3 有效范围必须是同一个SqlSession对象

    4、缓存流程  (sqlsession)

      4.1  步骤一:先去缓存区中找是否存在statement

      4.2 步骤二:返回结果

      4.3 步骤三:如果没有缓存statement对象,去数据库获取数据

      4.4 步骤四:数据库返回查询结果

       4.5 步骤五:把查询结果放到对应的缓存区中

     

    5、SqlSessionFactory缓存

      5.1 又叫:二级缓存

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

      5.3 什么时候使用二级缓存:

        5.3.1 当数据频繁被使用,很少被修改

      5.4 使用二级缓存步骤

        5.4.1 在mapper.xml中添加

        5.4.2 如果不写readOnly="true" 需要把实体类序列化

    1 <cache readOnly="true"></cache>

      5.5 当SqlSession对象close()时 或commit()时会把SqlSession缓存的数据刷(flush)到SqlSessionFactory缓存区中

    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    初学mysql数据库
    类与对象课堂总结
    CNN网络的基本介绍(三)
    CNN网络的基本介绍(二)
    CNN网络的基本介绍(一)
    Android studio界面布局的简单介绍
    Android studio初见及结构分析
    JDBC实现Mysqual的增删改查
    BufferedReader统计TXT文本
    JAVA的异常处理
  • 原文地址:https://www.cnblogs.com/axu521/p/10104546.html
Copyright © 2011-2022 走看看