mybatis XML の if タグはパラメータが int の値であると判断します

問題のあるコード:
以下は mybatis の XML ステートメントです。


<select id="userList" resultType="com.sxkj.example.user" parameterType="com.sxkj.example.user">
      select * from good
        <where>
            <if test="userid!=null and userid!=''">
                userid=#{userid}
            </if>
            <if test="state!=null and state='' ">
                and state=#{state}
            </if>       
        </where>
        order by id desc
    </select>

state フィールドは int 型です。パラメータ state が 0 の場合、その状態に入ることができないという条件により、スワイプによってデータが選択されなくなります。
state の値が 0 の場合、そのデータ型は Integer であるため、この判断は false となり、Mybatis は 0 を ' ' とみなします。

解決;


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

おすすめ

転載: blog.csdn.net/qq_39236283/article/details/126320400