mybatis id和result mybatis id和result标签_sql语句

1 定义sql语句

1.1 insert标签

  • id:唯一的标识符
  • parameterType:传给此语句的参数的全路径名或别名

1.2 delete标签

  • id:唯一的标识符
  • parameterType:传给此语句的参数的全路径名或别名

1.3 update标签

  • id:唯一的标识符
  • parameterType:传给此语句的参数的全路径名或别名

1.4select标签

  • id:唯一的标识符.
  • parameterType:传给此语句的参数的全路径名或别名
  • resultType:语句返回值类型或别名。注意,如果是集合,那么这里填写的是集合的泛型,而不是集合本身(resultType与resultMap不能并用)

2 对象属性和列的映射

2.1 resultMap

resultMap标签:

id:该resultMap的标识
type:表对应的实体类的全类名或别名

resultMap标签下的id标签:

用于设置主键字段与java对象属性的映射关系

resultMap标签下的result标签:

用于设置普通字段与java对象属性的映射关系

3 动态sql拼接

3.1 if标签

<if test="name != null and name != ''">
    and NAME = #{name}
</if>

3.2 foreach标签

  • collection:collection 属性的值有三个分别是 list、array、map 三种,分别对应的参数类型为:List、数组、map 集合。
  • item:表示在迭代过程中每一个元素的别名
  • index:表示在迭代过程中每次迭代到的位置
  • open:前缀
  • close:后缀
  • separator:分隔符,表示迭代时每个元素之间以什么分隔

3.3 choose标签

MyBatis 提供了choose元素,按顺序判断when中的条件出否成立,如果有一个成立则choose结束。当choose中所有when的条件都不满则时,则执行otherwise中的sql。

4 格式化输出

4.1 where标签

where标签所包含的标签,如果它有返回值的话,它就插入一个where。此外,如果它返回的内容是以AND或OR开头的,则它会剔除掉。

4.2 set标签

没有使用 if 标签时,如果有一个参数为 null,都会导致错误。当在update语句中使用if标签时,如果最后的if没有执行,则或导致逗号多余错误。使用set标签可以剔除追加到条件末尾的任何不相关的逗号。

4.3 trim标签

  • prefix:在trim标签内sql语句加上前缀
  • suffix:在trim标签内sql语句加上后缀
  • prefixOverrides:指定去除多余的前缀内容,如:prefixOverrides="AND |OR"(注意空格是必要的),去除trim标签内sql语句多余的前缀"and"或者"or"。
  • suffixOverrides:指定去除多余的后缀内容

5 配置关联关系

5.1 collection 标签

5.2 association 标签

6 定义常量及引用

6.1 sql 标签

当多种类型的查询语句的查询字段或者查询条件相同时,可以将其定义为常量,方便调用。

6.2 include 标签

用于引用定义的常量