批量添加,删除,修改数据 基于MySQL SSM

添加

<insert id="functionName" parameterType="java.util.List">
  INSERT INTO table_name
  (    field1,field2,field3  )
  VALUE
  <foreach collection="list" item="item" index="index" separator=",">
   (
    #{item.field1},#{item.field2}

    <if test="item.field3 != null">,#{item.field3}</if>

    <if test="item.field3 == null">,null</if>//这里这个部分是为了告诉大家,某些字段如果不穿值得话我的处理方式,

<if test="item.field3 != null">,#{item.field3}</if>//因为这个语句在 mysql上的是这样的:   

//           INSERT INTO table_name ( field1,field2,field3) VALUE('','',''),('','','')

   )
   </foreach>
  </insert>

 

修改

<update id="functionName" parameterType="java.util.List">
  UPDATE effect_info
  <trim prefix="SET" suffixOverrides=",">
      <trim prefix="field = CASE id" suffix="END,">                       
          <foreach collection="list" item="item" index="index">
          <if test="item.field != null">
               WHEN #{item.id} THEN #{item.field}
          </if>
          </foreach>
      </trim>
      <trim prefix="profile = CASE effect_id" suffix="END,">
          <foreach collection="list" item="item" index="index">
          <if test="item.profile != null">
               WHEN #{item.effectId} THEN #{item.profile}
          </if>
          </foreach>
      </trim>
  </trim>
WHERE id IN
      <foreach collection="list" item="item" index="no" open="(" separator="," close=")">
          #{item.id}
       </foreach>
  </update>

主要运用的是mysql  when then 语法

UPDATE table_name SET    field = case id

       WHEN #{id1} THEN #{field1}

       WHEN #{id2} THEN #{field2}

       END

WHERE id IN(id1,id2)

 

删除

<delete id="functionName" parameterType="java.util.List">
     DELETE FROM table_name WHERE id IN
    <foreach collection="list" item="item" index="no" open="(" separator="," close=")">
     #{item.id}
    </foreach>
  </delete>

DELETE FROM table_name WHERE id IN(id1,id2,id3)

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值