您的位置:首页 > 数据库

MyBatis解决Update动态SQL逗号的问题

2017-05-17 16:24 417 查看
 最做项目遇到以下情况,MyBatis中需要动态拼接Update,由于之前忙着赶项目,就直接照着下面的这样写,结果发现系统出现了异常,原来这样写如果id=null就会出错
UPDATETABLE
SET
<iftest="id!=null">
id=#{id,jdbcType=INTEGER}

</if>

<iftest"name!=null">

,name=#{name,jdbcType=VARCHAR}

</if>

whereid=#{id,jdbcType=INTEGER}


于是我查阅了网上的Mybatis的API和官方文档,找到了如下解决办法

UPDATETABLE
<trimprefix="set"suffixOverrides=",">
<iftest="id!=null">
id=#{id,jdbcType=INTEGER},
</if>

<iftest"name!=null">
name=#{name,jdbcType=VARCHAR},
</if>
</trim>
whereid=#{id,jdbcType=INTEGER}


<trim>节点标签:

trim主要功能是可以在Trim包含的内容前加上某些前缀(prefix),也可以在Trim包含的内容之后加上某些后缀(suffix)

                       还可以把Trim包含内容的首部的某些内容忽略掉(prefixOverrides)

,也可以把Trim包含的内容的尾部的某些内容忽略掉(suffixOverrides)

<trimprefix="set"suffixOverrides=",">


这行代码的意思是:在前面加上set 去掉最后的逗号!!!

备注方法2:把更新条件<if>标签内的内容,放在<set></set>标签中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐