使用Mybatis做批量Insert

本文介绍如何使用MyBatis实现对Oracle数据库的批量插入操作。通过特定的XML配置文件,利用foreach标签来构建动态SQL,实现从Java List集合中批量导入数据。文章详细解释了各个属性的作用及用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Mybatis对Oracle做批量插入可以这样做:

<insert id="UseObjectTobatchImport" useGeneratedKeys="false"parameterType="java.util.List">
INSERT INTO "temp_pet" 
("id","name","type","age","sex","master_id")
SELECT practice_pet_sequence.nextval, A.*
FROM(
<foreach collection="list" item="pet" index="index" separator="UNION ALL">
select '${pet.name}','${pet.type}','${pet.age}','${pet.sex}','${pet.masterID}' from dual 
</foreach>
) A
</insert>


useGeneratedKeys="false"  :

指定是否需要自动生成主键值。

mysql、sql Server 这些如果主键设定为自动增值,属性值就需要设置为true生气

Oracle 这种,主键不能自动增值,如果是通过sequence生成主键值,就把该属性设置为false生气


 item="pet"

此属性是对foreach 的循环中使用的变量名,例如${pet.name}就是使用其name属性,使用#{pet.name}也行,只是根据需要指定其jdbcType值生气


separator="UNION ALL"

可以不使用“ALL”但那样会屏蔽重复值,使用了“ALL”就不会屏蔽重复值。这点根据需要来做!生气


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值