mybatis 07 动态SQL解析处理

  1. 动态SQL定义
  2. XML脚本元素
  3. OGNL表达式
  4. XML解析
    1. 动态脚本的解析流程DynamicSqlSource

动态SQL定义

每次执行SQL时,基于预先编写的脚本和参数动态的构建可执行SQL语句

XML脚本元素

官网写的很详细,点击打开API文档

<if>

<choose> (when\otherwise),就是ifelse语法

<trim> 通常用来指定循环的逻辑

<where> 能解决条件拼装and的问题,它的底层是

<set> 解决update语句后面的逗号拼接问题,它的底层也是

<foreach> 对集合遍历

<scirpt> 在接口类中编写动态SQL(故意拼错,会被markdown识别为脚本样式)

<bind> 可创建一个变量,将其绑定到上下文

OGNL表达式

MyBatis底层封装了ognl

我们可以通过如下方式使用:

XML解析

动态脚本的解析流程DynamicSqlSource

SqlNode

解释器模式

下面看看xml怎么被解析成SqlNode

脚本自身可以包含其他脚本,组成一个脚本树,并依次执行


转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:mybatis 07 动态SQL解析处理

字数:249

本文作者:夏来风

发布时间:2020-06-20, 10:12:11

原始链接:http://www.demo1024.com/blog/mybatis-07-xmlparser/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。