前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatisd对MySQL批量插入、批量更新及批量删除语句

Mybatisd对MySQL批量插入、批量更新及批量删除语句

作者头像
BUG弄潮儿
发布2022-06-30 16:17:12
3.2K0
发布2022-06-30 16:17:12
举报
文章被收录于专栏:JAVA乐园

1、批量插入

<insert

id="insertBatch"

parameterType="java.util.List">

insert into

t_student(name, age, class)

values

<foreach

collection="list"

item="item"

index="index"

separator=",">

(

#{item.name,jdbcType=VARCHAR},

#{item.age,jdbcType=INTEGER},

#{item.class,jdbcType=LONGVARCHAR}

)

</foreach>

</insert>

2、批量更新

方式一:

<update id="updateBatch">

<foreach

collection="list"

separator=";"

item="stud">

update t_studetn set

name = #{stud.name},

age = #{stud.age},

class = #{stud.sex},

where id = #{stud.id}

</foreach>

</update>

方式二:

<update

id="updateBatch"

parameterType="list">

UPDATE t_student

SET name = CASE id

<foreach

collection="list"

item="i"

index="index">

WHEN #{i.id} THEN #{i.name}

</foreach>

END,

age = CASE id

<foreach

collection="list"

item="i"

index="index">

WHEN #{i.id} THEN #{i.age}

</foreach>

END

WHERE id IN

<foreach

collection="list"

separator="or"

item="i"

index="index" >

id=#{i.id}

</foreach>

</update>

3、批量删除

<delete id="deleteBatchByParams">

delete from

t_student

where

id IN

<foreach

collection="ids"

item="item"

index="index"

open="(" close=")"

separator=",">

#{item}

</foreach>

</delete>

item

循环体中的具体对象。支持属性的点路径访问,如item.age,item.info.details。具体说明:在list和数组中是其中的对象,在map中是value。该参数为必选。

collection

要做foreach的对象,作为入参时,List<?>对象默认用list代替作为键,数组对象有array代替作为键,Map对象没有默认的键。当然在作为入参时可以使用@Param("keyName")来设置键,设置keyName后,list,array将会失效。 除了入参这种情况外,还有一种作为参数对象的某个字段的时候。举个例子:如果User有属性List ids。入参是User对象,那么这个collection = "ids"如果User有属性Ids ids;其中Ids是个对象,Ids有个属性List id;入参是User对象,那么collection = "ids.id"上面只是举例,具体collection等于什么,就看你想对那个元素做循环。该参数为必选。

separator

元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选。

open

foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选。

close

foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。该参数可选。

index

在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档