心电图怎么看图解,人体内脏位置结构图解

在以前文章中,我们对Mybatis进行了入门级的介绍教小师妹快速入门Mybatis,看这篇就够了,今天我们来从一个全局的角度看看Mybatis。本文主要内容:M

在上一篇文章中,我介绍了Mybatis的入门级别,以便您可以快速开始使用它。今天我们就从整体的角度来了解一下Mybatis。

本文主要内容:

abb3f62d0e8946ce9942d909e8e9ab25~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=zgMNvjL7tNrgzaVieUCqCiEeM8k%3D

Mybatis工作流程

Mybatis 工作流程大致分为四个步骤。

d25ba0f2a2994050a4c61fb325d15fdc~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=MNPLt%2BWcRxkqCjxcTjae85S4rTM%3D

我们来讨论一下这四个步骤。

加载配置并初始化

触发条件:加载全局配置文件、XxxMapper.xml配置文件等配置文件。

配置来自两个地方。一是配置文件,二是Java代码注释。每个MappedStatement对象中都会加载SQL配置信息(包括传入参数映射配置、执行的SQL语句、结果映射)。配置)并保存在内存中。

接收调用请求

触发条件:调用Mybatis提供的API

传入参数:SQL ID和传入参数对象

处理过程:将请求传递给下层请求处理层进行处理。

行处理。

处理操作请求 触发条件:API接口层传递请求过来

传入参数:SQL ID 和传入参数对象

具体处理步骤: (A) 从SQL ID中查找对应的MappedStatement对象。

(B)根据入参对象解析MappedStatement对象,得到最终要执行的SQL以及执行入参。

(C) 获取数据库连接,将最终的SQL语句和执行参数传递给数据库,执行,并获取执行结果。

(D) 将得到的执行结果根据MappedStatement对象中的结果映射设置进行转换,得到最终的处理结果。

(E) 释放连接资源。

返回处理结果

返回最终处理结果。

Mybatis大致流程:

859e5eecb1204d39af6b4bc4ee35aff9~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=mW0zMjcWIiu6FAm7%2FacVpj3dB6g%3D

Mybatis实现原理

Mybatis底层仍然使用原生jdbc与数据库打交道,但是这些过程是通过SqlSessionFactory、SqlSessionExecutor、StatementHandler、ParameterHandler、ResultHandler、TypeHandler等几个处理器来封装的。

执行器:执行器(update、query、flushStatements、commit、rollback、getTransaction、close、isClosed) 参数处理程序:ParameterHandler(getParameterObject、setParameters) 结构处理程序ResultSetHandler(handleResultSets、handleOutputParameters) SQL 查询处理程序:StatementHandler(prepare、parameterize)、batch 、更新、查询)

其中StatementHandler用于分别通过ParameterHandler和ResultHandler进行参数预编译和结果处理。 ParameterHandler 和ResultHandler 都使用TypeHandler 进行映射。如下所示:

4113d00e6c294a9da7f51c0584f5041a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=9cmrIaTDC6B0rcWwslUOX0lc5xw%3D

MyBatis整体架构

Mybatis功能架构分为三层。

7503aa8f73e04ca99b21bcfbfc685878~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=GfsyACG8x0yKHWDrPcrrb5qv2cs%3D

每一层都对应着详细的内容。

c6aea875227b4e84bca4e9e346224e82~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=%2BnNc9QNyyUfsF2aYpemR%2FhHqlZU%3D

API接口层

首先,界面层是我们打交道最多的层。 SqlSession是上层应用程序和Mybatis之间的桥梁,定义了很多数据库操作的方法。接口层当收到调用请求时,调用核心处理层相应的模块,完成具体的数据库操作。

数据处理层

在该层中,与数据库操作相关的动作主要在该数据处理层完成。

核心处理层主要做四件事:

将接口中传递的参数解析并映射为JDBC 类型,解析SQL 语句(包括参数插入和动态SQL 生成),并将结果集映射为Java 对象。插件也属于核心层。这取决于插件的工作方式以及它拦截的内容。

基础支撑层

负责连接管理、事务管理、配置加载、缓存等最基本的功能支持。这些被提取为其最基本的组成部分。为上层数据处理提供最基本的支持。

8c742ffef1bd44b1bb76d3d2df6ee917~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=Nqe4klx5OC3VCQuQXHc7Zovts60%3D

MyBatis的主要成员

Configuration

MyBatis的所有配置信息都存储在Configuration对象中,配置文件中的大部分配置都存储在该类中。

SqlSession

作为MyBatis的主要顶层API,它在与数据库交互时代表一个会话,并执行必要的数据库添加、删除、修改和查询功能。

Executor

MyBatis Executor是MyBatis调度的核心,负责生成SQL语句和维护查询缓存。

StatementHandler

封装了JDBC语句操作,负责设置参数等JDBC语句操作。

ParameterHandler

负责将用户传递的参数转换成JDBC语句对应的数据类型。

ResultSetHandler

将从JDBC返回的ResultSet结果集对象转换为List类型的集合。

TypeHandler

负责Java数据类型和jdbc数据类型(也称为数据表列类型)之间的映射和转换。

MappedStatement

MappedStatement 管理select|update|delete|insert 节点的包。

SqlSource

负责根据用户传递的parameterObject动态生成SQL语句,并将信息封装在BoundSql对象中,并返回结果。

BoundSql

表示动态生成的SQL语句以及对应的参数信息。

Mybatis层次结构

bd4afddaaea346cf900bdebd5e56cbe4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=8yJmsHj9jqm5riu7wHAGWumfreg%3D

如果您发现本文有帮助,请不要忘记向我们发送3 位数字的链接,例如转发或评论。

下次见!获取方式:点赞、评论、关闭~

了解更多JAVA知识技能,关注博主私信(03)

7e9b33c4fcbe4518ba9614778ae01a31~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717789012&x-signature=TBRixroVRbuobonshDw%2BHzpytmw%3D

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84247.html

(0)
小条的头像小条
上一篇 2024年6月1日 上午3:36
下一篇 2024年6月1日 上午3:37

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注