爱好打劫 2017-02-04 08:28 采纳率: 50%
浏览 2985
已采纳

mybatis动态sql去掉,

动态sql

 <sql id="finalExamAttribute">
        <if test="course!=null">
            courseId = #{course.id}
        </if>
        <if test="tclass!=null">
            , classId = #{tclass.id}
        </if>
        <if test="teacher!=null">
            , tid=#{teacher.id}
        </if>
        <if test="score!=null">
            , score=#{score}
        </if>
        <if test="signer!=null">
            , signer=#{signer}
        </if>
    </sql>

修改语句


 <update id="updateFinalExamList">
        UPDATE finalExamList SET
        <include refid="finalExamAttribute" />
        WHERE id=#{id}
    </update>

执行的sql
图片说明
这是什么情况?
会不会是关联查询逗号就去不掉??
怎么解决???

  • 写回答

8条回答 默认 最新

  • snow_frost 2017-02-04 09:59
    关注

    mybatis的动态sql语句中的逗号(,)是放在语句后面,而不是前面的,像这样:OPTIME = #{optime,jdbcType=TIMESTAMP},
    这样mybatis在执行更新语句时会自动将末尾的逗号去掉,同时保证即使该对象的属性值全都为空也不会出错;
    当然如果你非要把逗号放在前面就需要在finalExamAttribute的最前面加上 id=#{id},不需要条件判断

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?