Mybatis 中 .xml 文件定义 <select|insert|update|delete> 语句如何解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: Mybatis 中 .xml 文件定义 <select|insert|update|delete> 语句如何解析

在这里插入图片描述

1、前言

Mybatis 在创建 SqlSessionFactory 时, XMLConfigBuilder 会解析 Mybatis-config.xml 配置文件

2、Mybatis 相关解析器

Mybatis 解析器模块中定义了相关解析器的抽象类 BaseBuilder, 不同的子类负责实现解析不同的功能, 使用了 Builder 设计模式

BaseBuilder

XMLConfigBuilder 负责解析 mybatis-config.xml 配置文件

XMLMapperBuilder 负责解析业务产生的 xxxMapper.xml

...

3、mybatis-config.xml 解析

XMLConfigBuilder 解析 mybatis-config.xml 内容参考代码 :

parseConfiguration

XMLConfifigBuilder#parseConfiguration() 方法将 mybatis-config.xml 中定义的标签进行相关解析并填充到 Configuration 对象中

4、xxxMapper.xml 解析

XMLConfifigBuilder#mapperElement() 中解析配置的 mappers 标签, 找到具体的 .xml 文件, 并将其中的 select、insert、update、delete、resultMap 等标签解析为 Java 中的对象信息

具体解析 xxxMapper.xml 的对象为 XMLMapperBuilder, 具体的解析方法为 parse()

parse

到这里就可以对当前问题作出答复了

Mybatis 创建 SqlSessionFactory 会解析 mybatis-config.xml, 然后 解析 configuration 标签下的子标签, 解析 mappers 标签时, 会根据相关配置读取到 .xml 文件, 继而解析 .xml 中各个标签

具体的 select、insert、update、delete 标签定义为 MappedStatement 对象, .xml 文件中的其余标签也会根据不同映射解析为 Java 对象

5、MappedStatement

这里重点说明下 MappedStatement 对象, 一起看一下类中的属性和 SQL 有何关联呢

MappedStatement

MappedStatement 对象中 提供的属性与 .xml 文件中定义的 SQL 语句 是能够对应上的, 用来 控制每条 SQL 语句的执行行为

相关文章
|
14天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器内置在多数浏览器中,用于将 XML 文件转换成 JavaScript 可操作的 XML DOM 对象。此对象提供了一系列方法,支持 XML 树的遍历与节点的增删改查。在处理 XML 前需先加载文档至 DOM。示例代码展示了如何使用 XMLHttpRequest 加载 "books.xml" 并将其内容作为 XML DOM 对象获取。
|
8天前
|
XML Web App开发 JavaScript
XML DOM 解析器
大多数浏览器内置了XML解析器,将XML文档转换成JavaScript可访问的XML DOM对象。XML DOM提供了遍历、访问、插入和删除节点的方法。在操作前,需先加载文档至DOM。示例代码展示了如何使用XMLHttpRequest加载并解析"books.xml"文件为DOM对象。
|
17天前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
44 12
|
10天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器内置在多数浏览器中,用于将 XML 文件转化为 JavaScript 可操作的 XML DOM 对象。此对象提供了一系列方法来遍历、访问、插入和删除 XML 节点。在使用前需先加载 XML 文档至 DOM。示例代码展示了如何利用 AJAX 技术加载并解析 "books.xml" 文件为 DOM 对象以便后续处理。
|
14天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器内置在多数浏览器中,可将 XML 文件转化为 JavaScript 可操作的 XML DOM 对象。此对象提供了一系列方法来遍历、访问、插入或删除 XML 树中的节点。在使用 JavaScript 处理 XML 前,需先加载 XML 到 DOM 对象。示例代码展示了如何通过 XMLHTTP 请求加载 "books.xml" 并将其设置为 XML DOM 对象以备后续处理。
|
18天前
|
XML Web App开发 JavaScript
XML DOM 解析器
大多数浏览器内置了XML解析器,能将XML文档转换为可由JavaScript操作的XML DOM对象。XML DOM提供了一系列方法来遍历、访问、插入和删除XML树中的节点。要使用这些功能,首先需加载XML文档到DOM。
|
16天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器内置在大多数浏览器中,用于将 XML 文件转换成 JavaScript 可操作的 XML DOM 对象。此对象提供了一系列方法,支持 XML 树的遍历与节点的访问、插入及删除。要操作 XML 文档,需先加载文档至 XML DOM。示例代码展示了如何加载名为 "books.xml" 的文件并将其内容作为 XML DOM 对象处理。
|
24天前
|
XML Web App开发 JavaScript
XML DOM 解析器
Most browsers have a built-in XML parser that converts XML into a JavaScript accessible object (XML DOM).
|
22天前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
37 3
|
24天前
|
XML Web App开发 JavaScript
XML DOM 解析器
解析器把 XML 转换为 JavaScript 可存取的对象(XML DOM)。

推荐镜像

更多