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 标签
用于引用定义的常量