if/where的用法
案例:查询员工,要求带了哪个字段就用哪个字段来查找员工信息
EmployeeDynamicSql.xml
<select id="getEmpsByConditionIf" resultType="com.fjn.mybatis.bean.Employee">
select id,last_name name,email,gender from tbl_employees
<!-- 查询的时候如果没给出某些条件可能sql拼装会出现问题
解决方法:
1.在where后添加个1=1,以后的条件都andxxxx
2.mybatis可以使用where标签将条件都包括在内(and 不可以写在语句后面)
//where只会去掉第一个多出来的and或or
3.使用trim字符串截取(在下面)-->
<where>
<if test="id != null">
id = #{id}
</if>
<if test="name != null && name != """>
and last_name like #{name}
</if>
<if test="email != null and email.trim() != """ >
and email = #{email}
</if>
<if test="gender == 0 or gender ==1">
and