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

  • 时间:
  • 浏览:7

从上边的代码还不可不可不能能 看出,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的拆件机制,将在该系列文章中完整版介绍。

Mybatis全局配置对象。

SQL映射句子(Mapper.xml文件每有一个多多土办法对应有一个多多MappedStatement对象)

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

1)MappedStatement ms:SQL映射句子(Mapper.xml文件每有一个多多土办法对应有一个多多MappedStatement对象)

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

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

还不可不可不能能 通过该对象获取SQL句子。

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

其他人来一一看一下其示例变量:

对象工厂。



出理 Jdbc ResultSet的出理 器。

结果集Handler。

Executor

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

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

本文作为下一篇《源码分析Mybatis整合ShardingJdbc SQL执行流程》的前置篇,重点介绍Executor、StatementHandler、ParameterHandler、ResultSetHandler的具体职责,以类图为基础并完整版介绍其核心土办法的作用,我希望完整版介绍了哪些对象是怎样创建,并引出Mybatis拆件机制。

参数出理 器Handler。

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

参数出理 器。同样其他人先来看一下其类图。

类型注册器。

同样支持插件化机制,其他人也稍微再看一下其调用链:



还不可不可不能能 看出其调用的入口为SQL执行时。

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

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

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

源码分析Mybatis系列目录:

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

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

本文来自上边件兴趣圈,了解相关信息还不可不可不能能 关注上边件兴趣圈。



你这个 比较简单,就是 出理 PreparedStatemet接口的参数化出理 ,也还不可不可不能能 顺便看一下其调用链(该主次会在下一篇中完整版介绍)。

该土办法的有一个多多关键点如下:

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

代码@2:对StatementHandler引入拆件机制,该主次将在该专题的后续文章中会完整版介绍,这里暂时跳过。

StatementHandler

根接口,其他人重点关注一下其定义的土办法:

出理 结果的Handler。其他人同样看一下其类图。

创建缓存Key,Mybatis一二级缓存的缓存Key,还不可不可不能能 看出Key由上述有一个多多参数来决定。

1)BoundSql boundSql:还不可不可不能能 通过该对象获取SQL句子。

查询土办法,其参数含义如下:

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

2)ResultHandler resultHandler:结果出理 器。

在学习StatementHandler如果,其他人先来回顾一下JDBC相关的知识。JDBC与句子执行的两大主流对象:java.sql.Statement、java.sql.PrepareStatement对象其他人应该不让陌生,该对象的execute土办法就是 执行SQL句子的入口,通过java.sql.Connection对象创建Statement对象。Mybatis的StatementHandler,是Mybatis创建Statement对象的出理 器,即StatementHandler会接管Statement对象的创建。

SQL执行器。