在编辑批量逻辑删除和批量添加sql语句中遇到的问题

使用批量增删改时要注意的事项

     在进行批量修改和批量逻辑删除的sql语句中使用<forEach> 标签,这里是可以使用open和close在标签内的开头和结尾添加()的

<!--  批量删除宿舍中的学生
    boolean removeDormitoryStudent(List<Integer> stuId);-->
  <update id="removeDormitoryStudent">
    update student_dormitory_relation set delete_flag = 1 where student_id in
    <foreach collection="list" item="stuId" open="(" close=")" separator=",">
      #{stuId}
    </foreach>
  </update>

     而在批量添加中的sql语句中使用<forEach> 标签,这里就不可以使用open和close,要在开头和结尾手动加上()

<!--  // 通过学生id 添加到宿舍内
    Integer saveDormitoryStu(@Param("stuId") List<String> stuId,@Param("dormitory") Dormitory dormitory);-->
  <insert id="saveDormitoryStu">
    insert into student_dormitory_relation
    (student_id,dormitory_dormitory_id,dormitory_dormitory_name,delete_flag,create_time,update_time)
    values
    <foreach collection="stuId" item="stuId" separator=",">
       (
        #{stuId},
        #{dormitory.dormitoryId},
        #{dormitory.dormitoryName},
        0,
        now(),
        now()
      )
    </foreach>
  </insert>

 

posted @ 2022-04-13 10:22  回头是岸不可能回头  阅读(152)  评论(0)    收藏  举报