zoukankan      html  css  js  c++  java
  • MyBatis update set 多个字段

    <update id="updateCustomer" parameterType="com.entrym.domain.Customer">
        UPDATE customer set
        <if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
        <if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
        <if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
        <if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
        <if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
        WHERE id =#{id,jdbcType=BIGINT}

    如果上面的mobile字段为null,执行下面的SQL语句

    UPDATE customer set name=?,role=?,userId=?,qq=? where id=?

    where 前面有逗号“,”就会报错

    使用trim可以删掉最后字段的逗号“,”
    set已被包含在trim中,所以不用重复写了:

    <update id="updateCustomer" parameterType="com.entrym.domain.Customer">
        UPDATE customer
        <trim prefix="set" suffixOverrides=",">
          <if test="claimTime!=null">claim_time=#{claimTime,jdbcType=VARCHAR},</if>
          <if test="claimState!=null">claim_state=#{claimState,jdbcType=INTEGER},</if>
          <if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
          <if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
          <if test="platformAccount!=null">platform_account=#{platformAccount,jdbcType=VARCHAR},</if>
          <if test="collaborateTime!=null">collaborate_time=#{collaborateTime,jdbcType=VARCHAR},</if>
         <if test="collaborateState!=null">collaborate_state=#{collaborateState,jdbcType=INTEGER},</if>
          <if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
        <if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
        <if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
         </trim>
         WHERE id =#{id,jdbcType=BIGINT}
    </update> 

    转义字符:

    &lt;        小于号        <

    &gt;       大于号        >

    &amp;    和            &

    &apos;   单引号       ’

    &quot;    双引号       "

    -------------------------------------充足的睡眠、均衡饮食和适当的运动是健康生活的三个鼎足----------------------------------------
  • 相关阅读:
    多进程多线程
    JS---闭包
    Canvas:时钟
    CANVAS画布与SVG的区别
    CSS盒模型
    CSS---伪类与伪元素的区别
    CSS生成内容
    利用画布绘制折线图
    uiwebview与objective-c
    GoBelieve JS IM SDK接入备忘
  • 原文地址:https://www.cnblogs.com/Alwaysbecoding/p/6580674.html
Copyright © 2011-2022 走看看