[TOC]

一. if的使用

mybatis做if 判断 注意:下面这种写法只适用于 id 类型为字符串.

<if test="id != null and id != '' ">
  id = #{id}
</if>

如果id类型为int 当id=0时 这个判断不会进入.

可以这样写<if test="id != null and id != '' or id==0">

或者这样写<if test="id != null ">

来自: https://blog.csdn.net/qq_33626745/article/details/52955626

二. where

用在where条件不确定的情况下,where下的andor会自动增加和去除,如下案例

<select id="getUserList_whereIf" resultMap="resultMap_User" parameterType="com.yiibai.pojo.User">  
    SELECT u.user_id,  
           u.username,  
           u.sex,  
           u.birthday 
      FROM User u
    <where>  
        <if test="username !=null ">  
            u.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%')  
        </if>  
        <if test="sex != null and sex != '' ">  
            AND u.sex = #{sex, jdbcType=INTEGER}  
        </if>  
        <if test="birthday != null ">  
            AND u.birthday = #{birthday, jdbcType=DATE} 
        </if> 
    </where>    
</select>