<!--List<Emp> getEmpByCondition(Emp emp);-->
<select id="getEmpByConditionOne" resultType="Emp">
<!--if根据标签中test属性对应的判断条件,判断下面语句是否拼接到SQL语句中-->
select * from t_emp where 1 = 1
<if test="empName != null and empName !=''">
emp_name = #{empName}
</if>
<if test="age != null and age !=''">
and age = #{age}
</if>
<if test="sex != null and sex !=''">
and sex = #{sex}
</if>
<if test="email != null and email !=''">
and email = #{email}
</if>
</select>
where
当where标签中有内容时,会自动生成where关键字,并能去除多余的and或or标签
当where标签中无内容时,此时where标签没有任何效果
注:where标签不能将其中内容后面多余的and或or去除
xml复制代码
<select id="getEmpByConditionTwo" resultType="Emp">
<!--
where:当where标签中有内容时,会自动生成where关键字,并能去除多余的and或or标签
当where标签中无内容时,此时where标签没有任何效果
注:where标签不能将其中内容后面多余的and或or去除-->
select * from t_emp
<where>
<if test="empName != null and empName !=''">
emp_name = #{empName}
</if>
<if test="age != null and age !=''">
and age = #{age}
</if>
<if test="sex != null and sex !=''">
and sex = #{sex}
</if>
<if test="email != null and email !=''">
and email = #{email}
</if>
</where>
</select>