mybaits批量增加oracle数据

全部循环插入

<insert id="addList" parameterType="java.util.List" useGeneratedKeys="false">
	INSERT ALL
	<foreach item="item" index="index" collection="list">
	INTO T_APPLAUD
	(
		ID,
		USER_ID,
		BUSINESS_TYPE,
		PRODUCT_ID,
		CREATE_TIME
	) VALUES
	(
		#{item.id, jdbcType=NUMERIC},
		#{item.userId, jdbcType=VARCHAR},
		#{item.businessType, jdbcType=VARCHAR},
		#{item.productId, jdbcType=VARCHAR},
		#{item.createdTime, jdbcType=NUMERIC}
	)
	</foreach>
	SELECT 1 FROM DUAL
</insert>

局部循环插入

另外一种方法是 insert into table(...) (select ... from dual) union all (select ... from dual)

<insert id="addList" parameterType="java.util.List" useGeneratedKeys="false">
	INSERT INTO T_APPLAUD
	(
		ID,
		USER_ID,
		BUSINESS_TYPE,
		PRODUCT_ID,
		CREATE_TIME
	)
	<foreach item="item" index="index" collection="list" separator="union all">
	(
		SELECT
			#{item.id},
			#{item.userId},
			#{item.businessType},
			#{item.productId},
			#{item.createdTime}
		FROM DUAL
	)
	</foreach>
</insert>
09-03 18:09