zoukankan      html  css  js  c++  java
  • 写后台SQL的一些心得

      昨天犯了一个错,其实是前几天写的代码犯的错,今天发现的。这是原来的代码:

    <update id="updateInfoByFoodId">
        update food set 
      <if test="info != null">
        info=#{info, jdbcType=VARCHAR}
      </if>
      <where>
          <if test="foodId != null">
            food_id=#{foodId, jdbcType=BIGINT}
          </if>
      </where>
    </update>

    这段代码就是滥用if判断的典型了。如果foodId为空,那么food表info这一列的所有数据都会变成同一个值。这是代码逻辑上的错,这对数据库数据造成的破坏是毁灭性的。

    有的时候,SQL不能执行其实是需要的,它是对数据的保护。所以去掉foodId的null判断:

    <update id="updateInfoByFoodId">
        update food set 
      <if test="info != null">
        info=#{info, jdbcType=VARCHAR}
      </if>
        where food_id=#{foodId, jdbcType=BIGINT}
    </update>
  • 相关阅读:
    Laravel
    Laravel
    Laravel
    Http状态信息
    BeautifuSoup的使用
    js中select标签中的option选择
    正则表达式
    利用vi编辑器创建和编辑正文文件(二)
    利用vi编辑器创建和编辑正文文件(一)
    认证、权限与频率组件
  • 原文地址:https://www.cnblogs.com/rainmer/p/4709931.html
Copyright © 2011-2022 走看看