Mybatis批量插入数据(Mysql / Oracle)

 1. Mysql 的批量插入方式:

    <insert id="insertDataByBatch">
	   insert into RECORD_IMFORMATION
		(recordId,toUserId,roomName,fromUserId,entityType,
		 entityContent,url)
		 
		values
	   <foreach collection="records" item="record"  separator="," >
	   (#{record.recordId},#{record.toUserId},#{record.roomName},
		 #{record.fromUserId},#{record.entityType},
		 #{record.entityContent},#{record.url})
	   </foreach>
	</insert>

2. Oracle的批量插入方式:

    <insert id="insertDataByBatch">
	   insert into RECORD_IMFORMATION
		(recordId,toUserId,roomName,fromUserId,entityType,
		 entityContent,url)
		SELECT A.* FROM (
		   <foreach collection="records" item="record" index="index" separator="UNION ALL" >
		   		SELECT
			     #{record.recordId, jdbcType=VARCHAR} recordId,
			     #{record.toUserId, jdbcType=VARCHAR} toUserId,
			     #{record.roomName, jdbcType=VARCHAR} roomName,
				 #{record.fromUserId, jdbcType=VARCHAR} fromUserId,
				 #{record.entityType, jdbcType=VARCHAR} entityType,
			 	 #{record.entityContent, jdbcType=VARCHAR} entityContent,
			 	 #{record.url, jdbcType=VARCHAR} url
			 	FROM dual
		   </foreach>
	   ) A
	</insert>

3. 动态插入Mysql不同的表

    <insert id="insertData" statementType="STATEMENT">
	   insert into ${tableName}
		(${fields})
		values(${values})	    
	</insert>

 

1. 需要Mybatis调用Sqlserver存储过程的话,可以参考:

    MyBatis 调用存储过程(详解) , mybatis 调用存储过程,获取其返回值(Sql Server)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值