网上转的:
从网上查阅相关资料,整理了一个Oracle批量插入的方法:
<insert id="insertBatch" parameterType="ArrayList" useGeneratedKeys="true">
INSERT INTO DEPT(DEPTNO , DNAME , LOC) SELECT S_FORUM_USERID.NEXTVAL , A.* FROM (
<foreach collection="list" item="item" index="index" separator="UNION">
SELECT #{item.dname} , #{item.loc} FROM DUAL
</foreach>
) A
</insert>
太聪明 了;
另外mysql应该是如下操作(没有验证):
<insert id="insertColumnitem" parameterType="java.util.List">
INSERT INTO REPORT_COLUMNITEM
(COLUMN_LABEL,COLUMN_FIELD,COLUMN_INDEX,REPORT_ID,COMMENTS)VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.columnLabel,jdbcType=VARCHAR},#{item.columnField,jdbcType=VARCHAR},#{item.columnIndex,jdbcType=NUMERIC},#{item.reportId,jdbcType=NUMERIC},#{item.comments,jdbcType=VARCHAR})
</foreach>
</insert>