gpt4 book ai didi

java - mybatis 与 一起使用时,当所有测试失败时,是否可以跳过更新?

转载 作者:行者123 更新时间:2023-12-02 09:54:02 26 4
gpt4 key购买 nike

使用 mybatis 时,动态 SQL 非常强大,例如对于 UPDATE:

<update id="update">
UPDATE BOOKS
<set>
<if test="book.author != null">AUTHOR=#{book.author},</if>
<if test="book.name != null">NAME=#{book.name}</if>
</set>
WHERE ID=#{book.id}
</update>

当作者或姓名不为空时,此方法有效,当两者都为空时,此方法失败,因为 SQL 有语法错误。

我的问题:当<set>之间的所有测试时是否可以跳过更新失败,或者我必须在执行update之前编写额外的java代码进行检查声明?

最佳答案

无法使用 XML 元素跳过语句执行。

但是,如果您只是想避免编写 Java 条件,则在 SET 子句中包含 ID 可能就足够了。

UPDATE BOOKS
SET
ID = #{book.id}
<if test="book.author != null">, AUTHOR=#{book.author}</if>
<if test="book.name != null">, NAME=#{book.name}</if>
WHERE ID = #{book.id}

关于java - mybatis 与 <set> 一起使用时,当所有测试失败时,是否可以跳过更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56134416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com