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>
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况