<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态 sql 的 9 个标签 trim | where | set | foreach | if | choose | when | otherwise | bind 等,<selectKey > 为不支持自增的主键生成策略标签。
各标签作用:
1.<resultMap>:映射数据库字段名与实体类属性名关系,用于字段名与属性名不一致。
2.<parameterMap>:
3.<sql>、<include>:<sql> 用于提取可重用的 sql 语句片段;<include > 用于引入可重用 sql 语句片段。两个标签搭配使用。
4.<selectKey>:主键回填,selectKey 返回最近一次插入的 id。
5.<trim>:MyBatis 的 trim 标签一般用于去除 sql 语句中多余的 and 关键字,逗号,或者给 sql 语句前拼接 “where“、“set“以及 “values (“ 等前缀,或者添加 “)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。
6.<if><where>:
<if> 标签内的 Sql 片段在满足条件后才会添加,用法为: <if test="条件"> 。
<where> 可以代替 sql 中的 where 1=1 和第一个 and ,更符合程序员的开发习惯。
7.<set>:<set> 标签用在 update 语句中。借助 <if> ,可以只对有具体值的字段进行更新。 <set> 会自动添加 set 关键字,并去掉最后一个 if 语句中多余的逗号。
8.<choose>、<when>、<otherwise>: 这些标签表示多条件分支,类似 JAVA 中的 switch...case 。 <choose> 类似 switch , <when> 类似 case , <otherwise> 类似 default 。
9.<foreach>:<foreach> 类似 JAVA 中的 for 循环,可以遍历集合或数组,用于批量增删改查。
10.<bind>:bind 元素可以(从 OGNL 表达式中)创建一个变量并将其绑定到上下文。
<bind> 标签两个属性:name、value
name:给对应参数取的别名。
value:对应传入实体类的某个字段,可以进行字符串拼接等特殊处理。