【笔记-MyBatis】Executor

Author:赵志乾
Date:2024-07-15
Declaration:All Right Reserved!!!

1. 简介

        Executor定义了数据库的操作方法,其中query和queryCursor方法用于执行查询操作,update方法用于执行插入、修改、删除操作。为便于用户使用,MyBatis使用门面模式引入SqlSession,提供了一套更为简洁的API。

2. 类体系

       

        BaseExecutor中定义执行流程和通用处理逻辑,具体的方法交由子类实现,属于模板模式的应用。        

  • SimpleExecutor:调用JDBC的API完成基本的增删改查操作;
  • ReuseExecutor:对JDBC的Statement对象做了缓存,避免频繁创建和销毁Statement对象,从而提升系统性能(享元模式)。
  • BatchExecutor:对调用同一个Mapper执行的update、insert、delete操作,调用Statement对象的批量操作功能以提升系统性能。

        MyBatis支持一级缓存和二级缓存,当开启二级缓存功能时,会使用CachingExecutor对SimpleExecutor、ReuseExecutor、BatchExecutor进行装饰,为查询操作增加二级缓存功能,这是装饰器模式的应用。

备注:MyBatis在应用启动时,会将所有的Mapper配置解析成MappedStatement对象并注入到Configuration对象中,此后可以通过调用Configuraiton对象的API获取所用的MappedStatement对象,并依据SQL类型调用Executor对象的query或update方法完成同数据库的交互。

相关推荐

  1. 笔记

    2024-07-16 07:12:01       21 阅读
  2. 拼音笔记笔记

    2024-07-16 07:12:01       48 阅读
  3. 笔记】HDFS基础笔记

    2024-07-16 07:12:01       40 阅读
  4. 笔记】Hbase基础笔记

    2024-07-16 07:12:01       39 阅读
  5. mySql笔记

    2024-07-16 07:12:01       52 阅读
  6. less 笔记

    2024-07-16 07:12:01       56 阅读
  7. React笔记

    2024-07-16 07:12:01       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 07:12:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 07:12:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 07:12:01       58 阅读
  4. Python语言-面向对象

    2024-07-16 07:12:01       69 阅读

热门阅读

  1. 什么是HTML?

    2024-07-16 07:12:01       25 阅读
  2. 扫地机器人的工作原理

    2024-07-16 07:12:01       21 阅读
  3. C++ 有用的资源

    2024-07-16 07:12:01       18 阅读
  4. Hello,World!(C++)

    2024-07-16 07:12:01       20 阅读
  5. Eclipse 创建 XML 文件

    2024-07-16 07:12:01       22 阅读
  6. Electron 为什么采用多进程,而不是单进程

    2024-07-16 07:12:01       18 阅读
  7. live555 rtsp服务器实战之createNewStreamSource

    2024-07-16 07:12:01       27 阅读
  8. MATLAB的mat文件转换成json文件

    2024-07-16 07:12:01       31 阅读
  9. 统计学随笔

    2024-07-16 07:12:01       23 阅读