if标签语句示例:
if标签会执行所有的if标签,并进行条件判断,满足的部分进行sql拼接

where标签语句示例:
动态拼接where(并且会智能的去掉第一个语句的and或者or)

choose,when,otherwise标签语句示例:
不会执行所有的when语句,遇到满足的条件,后面的when语句不会执行,otherwise可以不写

set 标签语句示例:
用于更新操作(并且会智能的去掉最后一个语句后面的逗号)

foreach 标签语句示例:
collection 表示迭代集合的名称,可以使用@Param注解指定,如下所示 该参数为必选
item 表示本次迭代获取的元素,若collection为List、Set或者数组,则表示其中的元素; 若collection为map,则代表key-value的value,该参数为必选
open 表示该语句以什么开始,最常用的是左括弧’(’,注意:mybatis会将该字符拼接到整体的sql语句之前,并且只拼接一次,该参数为可选项
close 表示该语句以什么结束,最常用的是右括弧’)’,注意:mybatis会将该字符拼接到整体的sql语句之后,该参数为可选项
separator mybatis会在每次迭代后给sql语句append上separator属性指定的字符,该参数为可选项
index 在list、Set和数组中,index表示当前迭代的位置,在map中,index代指是元素的key,该参数是可选项。

sql片段标签语句示例:
在mapper.xml中有些sql片段,在多个sql语句中都有用,每个都写的话显得代码冗余,可以用到代码片段,将公共部分抽取出来
注意点:最好基于单表定义sql片段,并且sql片段中不要存在where标签,因为where标签会自动优化sql中的and和or

trim标签语句示例:
trim标记是一个格式化的标记,可以完成set或者是where标记的功能
①用 trim 改写上面的 if+where 语句
prefix:前缀
prefixoverride:去掉第一个and或者是or

②用 trim 改写上面的 if+set 语句
suffix:后缀
suffixoverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)
