在Mybatis中,我们会遇见各式各样的查询,在这里我记录一下几个常用的查询方式以及容易出错的地方
1.<resultMap> 是返回值的封装 parameterMap 是参数的封装
2.<sql> 这个是代码片段。在标签<sql>中,我们可以将一些常用的写在这个中间,然后在下面的具体的sql语句中进行拼接就行。在下面的具体中需要使用<include>进行引入。
3.<if>标签在使用的时候,需要使用 test属性,将判断条件写在test中
4.<trim>动态拼接sql语句,这个功能很常用,比如我们在执行添加的过程中,insert操作时候,首先封装的属性字段不确定是否存在,就需要判断,我们执行的sql就要动态的拼接了,就要使用到<trim>.这个标签一共有四个属性,分别就是拼接前的头是什么,尾是什么,头忽略什么,尾忽略什么。 prefix前缀 suffix后缀 suffixOverrides 前缀忽略 prefixOverrides后缀忽略,忽略前缀就是如果在这个prefixOverrides标签中,有值了,那么就会在<trim>这个标签体中的所有子标签挨个去查看,如果后缀满足条件,删除掉。
5.<foreach>标签,是遍历, 里面的属性有:
collection (这个是标明你循环的是什么类型,如果是list就写list,如果是map.就写map.如果是数组,就写数组的名字只有这三种)
index(当前遍历到的对象在整个集合中的位置下标)
item (当前遍历到的当前对象)
open 开始
close 结束
separator 分隔符
这里有一个需要注意的地方,就是循环遍历查询的时候,返回值如果是一个list集合的时候,参数的接受不能是list,只能用查询出来的pojo对象接受,也就是resultType写pojo的类名。