我怎么能使用更新语句 MyBatis上的声明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我怎么能使用更新语句 MyBatis上的声明相关的知识,希望对你有一定的参考价值。
我想知道如何使用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条件。
如果有适当的条件,有没有办法更新,否则跳过或忽略?
谢谢
答案
<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失败并且没有更新
另一答案
<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会很高兴
以上是关于我怎么能使用更新语句 MyBatis上的声明的主要内容,如果未能解决你的问题,请参考以下文章