MyBatis在生成update语句时若使用if标签,如果前面的if没有执行,则可能导致有多余逗号的错误。
使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。
没有使用if标签时,如果有一个参数为null,都会导致错误,如下示例:
<update id="updateByPrimaryKeySelective" parameterType="RecruitmentConfBanner">
UPDATE conf_banner t
<set>
<if test="bannerName != null"> t.banner_name = #{bannerName}, </if>
<if test="bannerUrl != null"> t.banner_url = #{bannerUrl}, </if>
<if test="bannerLogo != null"> t.banner_logo = #{bannerLogo}, </if>
<if test="bannerDescription != null"> t.banner_description = #{bannerDescription}, </if>
<if test="sort != null"> t.sort = #{sort}, </if>
<if test="isEnabled != null"> t.is_enabled = #{isEnabled}, </if>
</set>
where t.banner_id = #{bannerId}
</update>
链接:https://www.jianshu.com/p/9b5cd4a7b754
來源:简书