gball个人知识库
首页
基础组件
基础知识
算法&设计模式
  • 操作手册
  • 数据库
  • 极客时间
  • 每日随笔
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 画图工具 (opens new window)
关于
  • 网盘 (opens new window)
  • 分类
  • 标签
  • 归档
项目
GitHub (opens new window)

ggball

后端界的小学生
首页
基础组件
基础知识
算法&设计模式
  • 操作手册
  • 数据库
  • 极客时间
  • 每日随笔
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 画图工具 (opens new window)
关于
  • 网盘 (opens new window)
  • 分类
  • 标签
  • 归档
项目
GitHub (opens new window)
  • 面试

  • 数据库

  • linux

  • node

  • tensorFlow

  • 基础组件

    • mybatis

      • mybatis概览
      • mybatis-执行器
      • mybatis的mapper执行过程
      • mybatis核心组件
      • mybatis缓存解析
      • mybatis日志体系
      • mybatis拦截器执行原理
    • spring

    • 消息队列

    • springboot

    • tomcat如何工作

    • elasticsearch

  • 基础知识

  • 算法与设计模式

  • 分布式

  • 疑难杂症

  • go学习之旅

  • 极客时间

  • 知识库
  • 基础组件
  • mybatis
ggball
2021-11-10

mybatis核心组件

image-20211031125517372

sequenceDiagram

	participant SqlSession
	participant Excutor
	participant StatementHandler
	participant parameterHandler
	participant ResultSetHandler
	participant TypeHandler
	participant ResultSet
	participant JDBC
	
	SqlSession->>Excutor: 
	Excutor->>StatementHandler: 
	StatementHandler-->>parameterHandler: 
	StatementHandler-->>JDBC: 
	parameterHandler-->>TypeHandler: 
	parameterHandler->>JDBC: 
	JDBC->>ResultSet: 
	ResultSet-->>TypeHandler: 
	ResultSet-->>ResultSetHandler: 
	TypeHandler-->>ResultSetHandler: 
	ResultSetHandler->>StatementHandler: 
	StatementHandler->>Excutor: 
	Excutor->>SqlSession: 
	
	Note left of SqlSession: asa

	
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    flowchart TD
    	subgraph configuration
        mappedStatement1 --> mappedStatement2
        end
1
2
3
4

configuration:

MyBatis框架的配置信息有两种,一种是配置MyBatis框架属性的主配置文件;另一种是配置执行SQL语句的Mapper配置文件。Configuration的作用是描述MyBatis主配置文件的信息

个人理解:

作为注册信息的载体,各种属性开关,Configuration组件还作为Executor、StatementHandler、ResultSetHandler、ParameterHandler组件的工厂类,用于创建这些组件的实例

excutor

Executor接口中定义了对数据库的增删改查方法,其中query()和queryCursor()方法用于执行查询操作,update()方法用于执行插入、删除、修改操作

MappedStatement

MyBatis通过MappedStatement描述<select|update|insert|delete>或者@Select、@Update等注解配置的SQL信息

StatementHandler

StatementHandler组件封装了对JDBC Statement的操作,例如设置Statement对象的fetchSize属性、设置查询超时时间、调用JDBC Statement与数据库交互等。

TypeHandler

处理JDBC类型与Java类型之间的转换

ParameterHandler

如果SQL语句中有参数占位符,在执行SQL语句之前,就需要为参数占位符设置值。ParameterHandler的作用是在PreparedStatementHandler和CallableStatementHandler操作对应的Statement执行数据库交互之前为参数占位符设置值

ResultSetHandler

ResultSetHandler用于在StatementHandler对象执行完查询操作或存储过程后,对结果集或存储过程的执行结果进行处理


1
上次更新: 2025/06/04, 15:06:15
mybatis的mapper执行过程
mybatis缓存解析

← mybatis的mapper执行过程 mybatis缓存解析→

最近更新
01
AIIDE
03-07
02
githubActionCICD实战
03-07
03
windows安装Deep-Live-Cam教程
08-11
更多文章>
Theme by Vdoing
总访问量 次 | 总访客数 人
| Copyright © 2021-2025 ggball | 赣ICP备2021008769号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×

评论

  • 评论 ssss
  • 回复
  • 评论 ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
  • 回复
  • 评论 ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
  • 回复
×