where标签为MyBatis的动态语句,下面是一个常见的查询语句

<select id="selectById" parameterType="userMapVo" resultType="user">
    select * from user
    <where>
        <if test="id != null and id != '' ">
            id=#{id}
        </if>
        <if test="name != null and name != '' ">
            and name=#{name}
        </if>
    </where>
</select>

一、

如果上述SQL语句中where标签里的if全不成立,则不走专where语句。

二、

会把AND/OR自动忽略掉。

如果第一个if标签里ID的值为null或空字符串的话,那么打印出来的SQL为:select * from user where name=”xxx”
三、
如果if条件全部不成立,不使用<where>直接用where关键词的话会导致sql语法错误,打印出来的SQL为:select * from user where

发表评论

电子邮件地址不会被公开。 必填项已用*标注