我怎么能使用更新语句 MyBatis上的声明

问题描述 投票:0回答:2

我想知道如何使用if语句如下所述

<update id="update"
    parameterType="com.MyClass">
    UPDATE
        Board SET Status = 1
    <where>
        <if test="A != null and A.length() > 0">AND A = ${A}</if>
    </where>
</update>

当A!= null和A.length()> 0时,此语句有效。

但是如果A == null,那么更新整行设置1会导致没有where条件。

如果有适当的条件,有没有办法更新,否则跳过或忽略?

谢谢

mysql if-statement mybatis ibatis
2个回答
0
投票
<update id="update"
    parameterType="com.MyClass">
    UPDATE
        Board SET Status = 1
    <where>
        <choose>
            <when test="A != null and A.length() > 0">
                 AND A = ${A}
            </when>
            <otherwise>
                 AND 0 = 1
            </otherwise>
        </choose>
    </where>
</update>

条件0 = 1时,where失败并且没有更新


0
投票

<update id="update" parameterType="com.MyClass"> UPDATE Board SET Status = 1 <where> <![CDATA[<if test="A != null and A.length() > 0">AND A = ${A}</if>]]> </where> </update>

尝试CDATA会很高兴

© www.soinside.com 2019 - 2024. All rights reserved.