wzuosen 2019-09-16 18:29 采纳率: 0%
浏览 2048

mybatis <if>标签,insert语句报语法错误

在插入数据库时判断字段非空(message_article_id)

<if test="messageArticleId != null or messageArticleId != ''">
insert into message(message_id,message_title,message_content,message_date,message_category_id, message_user_id ,message_article_id)
values(#{messageId},#{messageTitle} ,#{messageContent},#{messageDate},#{messageCategoryId},#{messageUserId}  ,#{messageArticleId});
</if>
<if test="messageArticleId == null or messageArticleId == ''">
insert into message(message_id,message_title,message_content,message_date,message_category_id, message_user_id)
values(#{messageId},#{messageTitle} ,#{messageContent},#{messageDate},#{messageCategoryId},#{messageUserId});
</if>

但是这样在**messageArticleId**非空的情况下可以插入,非空时总是会报**语法错误**
但是通过下面这种方式就没有问题

        insert into message(message_id,message_title,message_content,message_date,message_category_id,
        message_user_id
        <if test="messageArticleId != null or messageArticleId != ''">
        ,message_article_id
        </if>
        ) 
        values(#{messageId},#{messageTitle}
        ,#{messageContent},#{messageDate},#{messageCategoryId},#{messageUserId}
         <if test="messageArticleId != null or messageArticleId != ''">
         ,#{messageArticleId}
         </if>
         );

求教

  • 写回答

1条回答 默认 最新

  • Json-Huang 2019-09-16 19:44
    关注

    一般,写在字段后面,建议加上trim,参考如下试试,选了其中两个字段,其他字段可以参考模版补充即可

     insert into message
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="message_id != null" >
            message_id,
          </if>
          <if test="messageArticleId != null" >
            messageArticleId,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="message_id != null" >
            #{message_id,jdbcType=VARCHAR},
          </if>
          <if test="messageArticleId != null" >
            #{messageArticleId,jdbcType=VARCHAR},
          </if>
        </trim>
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!