Mybatis执行SQL的4大基础组件详解

  • 时间:
  • 浏览:39
  • 来源:uu快3苹果版_uu快3单双_套路

从里面的代码可否看出,Executor的创建由如下兩个 关键点:

代码@1:默认的ExecutorType为ExecutorType.SIMPLE,即默认创建的Executory为SimpleExecutor。

代码@2:根据executorType的值创建对应的Executory。

代码@3:时候 cacheEnabled为true,则创建CachingExecutory,时候在其內部持有里面创建的Executor,cacheEnabled默认为true,则默认创建的Executor为CachingExecutor,时候其內部寄寄邮包 着SimpleExecutor。

代码@4:使用InterceptorChain.pluginAll为executor创建代理对象,即Mybatis的拆件机制,将在该系列文章中删剪介绍。

创建缓存Key,Mybatis一二级缓存的缓存Key,可否看出Key由上述兩个 参数来决定。

1)BoundSql boundSql:可否通过该对象获取SQL语句。

SQL执行器。

参数处里器Handler。

本文作为下一篇《源码分析Mybatis整合ShardingJdbc SQL执行流程》的前置篇,重点介绍Executor、StatementHandler、ParameterHandler、ResultSetHandler的具体职责,以类图为基础并删剪介绍其核心措施的作用,时候删剪介绍了那此对象是何如创建,并引出Mybatis拆件机制。

1、源码分析Mybatis MapperProxy初始化之Mapper对象的扫描与构建

2、源码分析Mybatis MappedStatement的创建流程

原文发布时间为:2019-05-21

本文作者:丁威,《RocketMQ技术内幕》作者。

本文来自里面件兴趣圈,了解相关信息可否关注里面件兴趣圈。

同样支持插件化机制,亲戚亲戚朋友儿也稍微再看一下其调用链:



可否看出其调用的入口为SQL执行时。

结果集Handler。

sql执行器,其对应的类全路径:org.apache.ibatis.executor.Executor。

StatementHandler

根接口,亲戚亲戚朋友儿重点关注一下其定义的措施:

Mybatis全局配置对象。

在学习StatementHandler时候 ,亲戚亲戚朋友儿先来回顾一下JDBC相关的知识。JDBC与语句执行的两大主流对象:java.sql.Statement、java.sql.PrepareStatement对象亲戚亲戚朋友儿应该无需陌生,该对象的execute措施如果执行SQL语句的入口,通过java.sql.Connection对象创建Statement对象。Mybatis的StatementHandler,是Mybatis创建Statement对象的处里器,即StatementHandler会接管Statement对象的创建。

温馨提示:本篇是源码分析Mybatis ShardingJdbc SQL语句执行的前置篇。

源码分析Mybatis系列目录:

亲戚亲戚朋友儿来一一看一下其示例变量:

在Mybatis中,Executor的创建由Configuration对象来创建,具体的代码如下:

参数处里器。同样亲戚亲戚朋友儿先来看一下其类图。

查询措施,其参数含义如下:

1)RowBounds:行边界,主要值分页参数limit、offset。

2)ResultHandler resultHandler:结果处里器。

同样该接口也支持插件化机制。



你你是什么 比较简单,如果处里PreparedStatemet接口的参数化处里,也可否顺便看一下其调用链(该偏离 会在下一篇中删剪介绍)。



处里Jdbc ResultSet的处里器。

原来 是会根据MappedStatement对象的statementType创建对应的StatementHandler。

对象工厂。

SQL映射语句(Mapper.xml文件每兩个 措施对应兩个 MappedStatement对象)

可否通过该对象获取SQL语句。

处里结果的Handler。亲戚亲戚朋友儿同样看一下其类图。

该措施的兩个 关键点如下:

代码@1:创建RoutingStatementHandler对象,在其內部再根据SQL语句的类型,创建对应的StatementHandler对象。

代码@2:对StatementHandler引入拆件机制,该偏离 将在该专题的后续文章中会删剪介绍,这里暂时跳过。

Executor

执行器根据接口,定义update(更新或插入)、query(查询)、commit(提交事务)、rollback(回滚事务)。接下来简单介绍多少重要措施:

行边界,主要值分页参数limit、offset。

类型注册器。

1)MappedStatement ms:SQL映射语句(Mapper.xml文件每兩个 措施对应兩个 MappedStatement对象)

2)Object parameter:参数,通常是List集合。