在插入数据库时判断字段非空(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>
);
求教
一般,写在字段后面,建议加上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>