<select id="findUserInfoByUnoQuantity" parameterType="Map"
resultMap="UserInfoResult">
select * from userinfo
<where>
<if test="department!=null">
department like #{department}
</if>
<if test="gender!=null">
AND gender=#{gender}
</if>
<if test="position!=null">
AND position like #{position}
</if>
</where>
</select>
a.select之后没有直接写Sql语句的where,而是使用<where>标签
b.按照标准写法,第一个<if>标签内的AND应该不写,但是,就算开发中书写也不会报错。
这就是where标签帮助我们自动的移除了第一个AND链接。但是,第二个之后的<if>标签内,必须有AND链接。
c.如果没有一个条件符合,则返回所有条目,where不起作用。
转自:http://blog.csdn.net/abcd898989/article/details/51224913