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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BAStriver/article/details/81903630

 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>

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>

猜你喜欢

转载自blog.csdn.net/BAStriver/article/details/81903630