1.写个批量插入oracle的样例,供以后拿来就用,注意属性前面要加 item.
ProductMapper.java
int insertForBatch(List<ProductValues> list);
ProductMapper.xml
<!-- 批量插入产品属性值 -->
<insert id="insertForBatch" parameterType="java.util.List">
insert into PRODUCT_ATT_VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
PRD_VALUE_ID,
PRODUCT_SAP_ID,
ATTRIBUTE_ID,
PRD_VALUE,
CREATED_BY,
CREATION_TIME,
MODIFIED_BY,
MODIFICATION_TIME,
DELETE_STATUS,
</trim>
select PRODUCT_ATT_VALUES_SEQ.nextval PRD_VALUE_ID, A.*
FROM
<foreach collection="list" item="item" open="(" close=")" index="index" separator="UNION ALL">
SELECT
<if test="item.productSapId != null">
#{item.productSapId,jdbcType=DECIMAL} PRODUCT_SAP_ID,
</if>
<if test="item.attributeId != null">
#{item.attributeId,jdbcType=VARCHAR} ATTRIBUTE_ID,
</if>
<if test="item.prdValue != null">
<![CDATA[#{item.prdValue,jdbcType=DECIMAL} PRD_VALUE]]>,
</if>
<if test="item.createdBy != null">
#{item.createdBy,jdbcType=DECIMAL} CREATED_BY,
</if>
current_date CREATION_TIME,
<if test="item.modifiedBy != null">
#{item.modifiedBy,jdbcType=VARCHAR} MODIFIED_BY,
</if>
current_date MODIFICATION_TIME,
0 DELETE_STATUS
FROM dual
</foreach>
A
</insert>