Oracle+Mybatis批量插入含有Sequence和CLOB欄位
阿新 • • 發佈:2018-12-28
參考 當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>