当使用了@Param注解,要出现指定的参数名
当没有使用@Param注解,要出现param1,param2
当使用了POJO,那么test中出现的是POJO类的属性名
<if test="brand!=null and brand!=' ' ">
sql语句
</if>
注意如果where中都是if,需要在前边加一个1=1否则可能报错
where标签的作用:让where子句更加动态智能:
所有条件都为空时,保证不会生成where语句
自动去除某些条件前面多余的and或or
trim标签
<trim
prefixOverrides="" 加前缀
suffix="" 加后缀
prefix="" 去掉前缀
suffixOverrides="and|or"> 去掉and或or的后缀
</trim>
<set>标签可以去除语句中的,
choose when... when otherwise标签
相当于if else if else
<choose>
<when test="">
xxxx
</when>
<when test="">
yyyy
</when>
<otherwise>
</otherwise>
</choose>
foreach标签的属性:
<foreach collection="" item="" separator=",">
</foreach>
collection指定数组或者集合,
item代表数组或集合中的元素的指代名,
separator代表循环之间的分隔符,
open表示foreach循环拼接的所有sql最前以什么开始
close表示以什么结束
建议起个别名
也可以有其他形式
<foreach collection="" item="" separator=","open="(" close=")">
</foreach>
eg:传参为(@Param("cars")List<car>cars)
insert into t_car values
<foreach collection="cars" item="car" seperator=",">
(null,#{car.carNUM,..........)
</foreach>
sql和include标签
可以声明一部分片段,在sql语句中inlude复用