判断传入的参数值是否为空或者为空字符串,达到根据不同的条件查询不同数据的目的
<select id="findUserList" resultMap="userResultMap">
select
<include refid="baseUser"/>
from t_user
<where>
<if test="name != null and name != ''">
and name like concat("%",#{name},"%")
</if>
<if test="password != null and password !=''">
and password=#{password}
</if>
</where>
</select>
4.set标签
为sql语句添加一个set,并且能够去掉末尾多余的,
<update id="updateUser">
update t_user
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="password != null and password != ''">
password = #{password},
</if>
</set>
where id=#{id}
</update>
5.trim标签
可以代替where标签和set标签
<update id="updateUser1">
update t_user
<!--
prefix:前缀在语句之前添加内容
suffix:后缀在语句之后添加的内容
suffixOverrides:后缀覆盖,去除后面多余的,
prefixOverrides:前缀覆盖,去除前面多余的and
-->
<trim prefix="set" suffix="" prefixOverrides="" suffixOverrides=",">
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="password != null and password != ''">
password = #{password},
</if>
</trim>
where id=#{id}
</update>
6.foreach标签
用户批量删除,循环遍历list
<delete id="batchDel">
DELETE from t_user where id in
<!--
collection:遍历的集合
open:开始遍历是调用
close:结束时调用
item:当前遍历的对象
separator:每次遍历都执行
index:当前遍历的索引值
-->
<foreach collection="list" open="(" close=")" item="id" separator="," index="index">
#{id}
</foreach>
</delete>