mybatis sql注解中加入判断条件

LZ执行的是修改操作,传过来的值是null,就不进行修改,以前用的是xml格式的,现在看一下注解的

test = 填写的是实体类的属性字段

 @Update("<script> " +
            "update training_history set " +
            "<if test='uid!=null'> uid = #{uid},</if>" +
            "<if test='prepare!=null'> prepare=#{prepare} ,</if>\n" +
            "<if test='start!=null'> start=#{start} ,</if>\n" +
            "<if test='end!=null'> end=#{end}, </if>" +
            "<if test='results!=null'> results=#{results},</if> " +
            "id = #{id} where id = #{id} " +
            "</script>")
    fun updateById(trainingHistory:TrainingHistory): Int

以上是根据主键id修改记录,由于这里的字段属性都是字符串,所以做null判断,这里根据自己需求改,注意的是 id = #{id},这里的id本来是不需要修改的,只是为了防止前面最后一个条件不满足时导致的sql语句语法错误,是自己的一种解决方式而已

切记,使用script标签后,sql语句里面不能包含 大于(>),小于(<),不等于(<>),解决 将 < 号换成 ‘&lt’; > 号 换成’&gt’;

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值