1. 程式人生 > >Oracle+Mybatis批量插入含有Sequence和CLOB欄位

Oracle+Mybatis批量插入含有Sequence和CLOB欄位

參考 當oracle+mybaits批量insert遇到CLOB型別欄位,通過使用 begin .. end 將語句放入Oracle 的塊裡實現批量提交。常規的,帶有 Sequence 的插入語句需要使用到 Mybatis 的 selectKey 標籤。但是,帶有 Sequence 和 CLOB 的卻可以使用下面更簡潔的方式完成:

	<insert id="insertAll" parameterType="java.util.List">
		begin
    	<foreach collection="list" item="item" index="index" separator=";">
		insert into SYNC_MESSAGE (ID, COHORT_DEF_ID, PROJECT_ID,
			REQUEST_PATH, EXE_TIME, ADV_ANALYSIS_ID,
			METHOD_NAME, TYPE, STATUS, TARGET_NODE, INPUT_JSON, CHECK_SUM)
		values (
			SYNC_MESSAGE_SEQ.NEXTVAL,
			#{item.cohortDefId,jdbcType=BIGINT},
			#{item.projectId,jdbcType=BIGINT},
			#{item.requestPath,jdbcType=VARCHAR},
			#{item.exeTime,jdbcType=TIMESTAMP},
			#{item.advAnalysisId,jdbcType=BIGINT},
			#{item.methodName,jdbcType=VARCHAR}, 
			#{item.type,jdbcType=VARCHAR}, 
			#{item.status,jdbcType=VARCHAR},
			#{item.targetNode,jdbcType=VARCHAR},
			#{item.inputJson,jdbcType=CLOB},
			#{item.checkSum,jdbcType=VARCHAR}
		)
		</foreach>
		;end;
	</insert>