【MyBatis】进阶使用 (动态SQL)

在填写表单时,有些数据是非必填字段(例如性别,年龄等字段),那就需要在接收到参数时判断,根据参数具体的情况来生成相应的 SQL,如果参数不为 null,就插入到数据里,如果参数为 null,就根据具体表设计而定。

<if>

使用 <if> 标签可以完成对接收到的参数进行判断。
首先看一组都不为空的情况下:
在这里插入图片描述

再看当性别为 null 的情况:

在这里插入图片描述

此时我们就需要使用 <if> 标签对接收到的参数进行判断,如果不为空,就加入到数据库:
在这里插入图片描述

而数据库也能正常插入数据:

在这里插入图片描述

<trim>

上述只判断了一个字段 gender,如果有更多的字段则需要使用多个 <if> 标签:
在这里插入图片描述

若字段 phone 为 null,则会出现下面这个情况:

在这里插入图片描述

此时,我们就需要 <trim> 标签了,用来去除不必要的 逗号:

在这里插入图片描述

在 <trim> 标签里还有两个配置,prefix 和 suffix,一个用于补全前缀,一个用于补全后缀:
在这里插入图片描述

<where>

<where> 标签用来去除判断条件里的 and 和 or,若筛选条件都为 null,则会去除 where 关键字。

当两个条件都不为 null 时:

在这里插入图片描述

当其中一个判断条件为 null 时:

在这里插入图片描述

当判断条件全为 null 时:

在这里插入图片描述

<set>

<set> 标签也常用于去除逗号,如果接受到的参数不为 null,则更新数据。
当参数都不为 null 时:

在这里插入图片描述
其中一个为 null 时:

在这里插入图片描述

参数都为 null 时:

在这里插入图片描述

<foreach>

用于对集合进行遍历。
在这里插入图片描述

collection 为方法中的集合
item 为集合中的每个对象
open 为语句块开头的字符串
close 则为语句块结束的字符串
separate 为每次遍历之间间隔的字符串

<include>

在编写 SQL 语句时,可能会存在重复的语句, 为解决这个现象,可以使用 <sql> 标签对相同语句进行封装,再使用 <include> 标签进行引用。
在这里插入图片描述

相关推荐

  1. MyBatis-动态sql常见使用

    2024-04-30 14:16:02       36 阅读
  2. Mybatis使用注解实现复杂动态SQL

    2024-04-30 14:16:02       61 阅读
  3. Mybatis 动态Sql标签使用总结

    2024-04-30 14:16:02       33 阅读
  4. SQL:Case语句使用

    2024-04-30 14:16:02       56 阅读
  5. Mybatis知识

    2024-04-30 14:16:02       58 阅读
  6. MyBatis应用

    2024-04-30 14:16:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 14:16:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 14:16:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 14:16:02       87 阅读
  4. Python语言-面向对象

    2024-04-30 14:16:02       96 阅读

热门阅读

  1. ES6要点

    ES6要点

    2024-04-30 14:16:02      33 阅读
  2. 用于网络唤醒(Wake-on-LAN)和远程关机的方法

    2024-04-30 14:16:02       146 阅读
  3. MySQL随便聊----之SQL的简单了解

    2024-04-30 14:16:02       131 阅读
  4. 深入理解堆机制:C语言中的数据结构基础

    2024-04-30 14:16:02       38 阅读
  5. qt环境下给lineEdit设置数值精度为0.5

    2024-04-30 14:16:02       36 阅读
  6. 解释一下HTTP请求报文的结构。

    2024-04-30 14:16:02       28 阅读