首页 > 其他分享 >mybatis 四大组件

mybatis 四大组件

时间:2022-10-24 15:13:23浏览次数:86  
标签:SQL 组件 四大 sql mybatis statementHandler

 

一、Mybatis四大组件

在这里插入图片描述

二、SqlSession四大对象

在这里插入图片描述
这里阐述一下上图的流程

Exeutor发起sql执行任务
1、先调用statementHandler中的prepare()进行SQL的编译
2、然后调用statementHandler中的parameterize()设置参数
    2.1、这里其实真正设置参数的是ParameterHandler中的setparameters()方法,该方法与typeHandler进行参数类型的转换
3、然后执行query/update方法,这里使用ResultSetHandler进行结果的组装工作
    3.1、这里ResultSetHandler又与typeHandler、ObjectFactory配合工作共同完成结果的组装工作
statementHandler

三、映射器三大组成部分

在这里插入图片描述
其实mybatis中一条SQL和它相关的配置信息由三部分组成

MappedStatement:sql的ID、缓存信息、resultType、ParameterType、resultMap等信息
Sqlsource:是MappedStatement的一个属性,是一个接口,主要提供BoundSql
BoudSql:是建立SQL和参数的地方,有三个主要属性,ParameterMappings、ParameterObject和sql,这个对象比较重要,我们通常使用插件就是对它进行拦截;

总结:

  1. Mybatis四大组件构成mybatis的整个生命周期;
  2. sqlSession四大对象,描述SQL执行的流程;
  3. 映射器组成部门,描述最底层SQL执行的细节;

标签:SQL,组件,四大,sql,mybatis,statementHandler
From: https://www.cnblogs.com/leeego-123/p/16821505.html

相关文章

  • MyBatisSystemException 【exception】
    org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.type.TypeException:Couldnotsetparametersformapping:ParameterMapping{prop......
  • Vue中父组件向子组件传值无法响应props的变化
    父组件:<template><q-btnroundcolor="pink-4"size="0.9em"text-color="white"denseic......
  • element日期组件时间范围选择限制
                参考:https://blog.csdn.net/Shids_/article/details/122881216 ......
  • el-cascader组件根据最后一级向上找到父级并设置默认值
    vue+ elementUI项目中,el-cascader级联选择器使用频率非常高,一些基本使用方法可以参考elementUI官方文档,本文主要研究当接口只返回最后一级id时,如何向上找出所有父级数据,......
  • Feign组件
    一、简介Feign是Netflix开发的声明式,模块化的HTTP客户端1 导入依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-star......
  • vue组件通信方式有哪些?
    vue组件通信方式一、props(父向子传值----自定义属性)/$emit(子向父传值-----自定义事件)父组件通过props的方式向子组件传递数据,而通过$emit子组件可以向父组件通信......
  • 聊聊 MyBatis 缓存
    聊聊MyBatis缓存首发公众号-悟空聊架构:图解|聊聊MyBatis缓存你好,我是悟空。本文主要内容如下:一、MyBatis缓存中的常用概念MyBatis缓存:它用来优化SQL数据......
  • 集成mybatis批量update问题
    <!--多条语句批量更新用的是拼接批量执行的方法--><updateid="updateDemo"><foreachcollection="list"item="item"index="index"open=""close=""separa......
  • # Vue3 组件传值
    Vue3组件传值今天说一下vue3的组件间传值,学习过vue2的宝子们肯定知道,组件传值是vue项目开发过程中必不可少的功能场景,在vue2里面有很多传值的方式,vue3的传值方式......
  • 注册全局组件
    第一步:给需要注册的全局组件取个name1<script>2exportdefault{3name:"TypeNav"4}5</script>第二部在main.js里引入1//三级联动路由组件2importTy......