java實現數據庫批量插入


1、mysql批量插入寫法

<!-- 接收 信息 批量  插入數據 改狀態-->
<insert id="insertAppMonitorResults" parameterType="List" useGeneratedKeys="false">
    insert into app_monitor_result (id,monitor_id,app_id,abstracts,keywords,content,exception_type,file_path,media_type,create_time) values
    <foreach collection="list" item="MonitorResult" index="index" separator="," >
      	(nextval("seq_appmonitorresult"),#{MonitorResult.monitorId}, #{MonitorResult.appId}, #{MonitorResult.abstracts}, #{MonitorResult.keywords}, #{MonitorResult.content}, #{MonitorResult.exceptionType}, 
     	 #{MonitorResult.filePath},#{MonitorResult.mediaType},#{MonitorResult.createTime})
    </foreach>
</insert>


 

ids太多的情況用此方法,因為in只支持1000以內的
<select id="selectBatchByIds" resultMap="TfMediaMaterialMap">
    select
        <include refid="materialColSql"/>
    from tf_media_material a
    where a.status = 'E' and ( a.id in
    <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
        <if test="(index % 999) == 998"> NULL ) OR a.id IN (</if>#{item}
    </foreach>
    )
</select>

 

 

 

2、ora批量插入數據

<!-- 插入數據 -->
	<insert id="insertViresLibrary" parameterType="java.util.List">
		INSERT INTO VIRES_LIBRARY 
		(ID,BIG_TYPE,SMALL_TYPE,SHOW,DESCRIPTION,TYPE,DELETED,CREATE_TIME,CHARACTERISTIC_VALUE,USER_ID,REMARKS)
		SELECT SEQ_VIRES_LIBRARY.NEXTVAL ID, A.*
		FROM(
		<foreach collection="list" item="item" index="index" separator="UNION ALL">
			SELECT 
			#{item.bigType,jdbcType=INTEGER} BIG_TYPE ,
			#{item.smallType,jdbcType=VARCHAR} SMALL_TYPE,
			#{item.show,jdbcType=VARCHAR} SHOW,
			#{item.description,jdbcType=VARCHAR} DESCRIPTION,
			#{item.type,jdbcType=INTEGER} TYPE,
			#{item.deleted,jdbcType=VARCHAR} DELETED,
			#{item.createTime} CREATE_TIME,
			#{item.characteristicValue,jdbcType=VARCHAR} CHARACTERISTIC_VALUE ,
			#{item.userId,jdbcType=INTEGER} USER_ID ,
			#{item.remarks,jdbcType=INTEGER} REMARKS 
			FROM dual
		</foreach>
		)A
	</insert>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM