1. 程式人生 > >Oracle,sql server,mysql的批量插入

Oracle,sql server,mysql的批量插入

在使用mybatis進行批量插入時,發現對於使用Oracle的自動增長序列時提示 : 

ORA-02287: 此處不允許序號 的錯誤,下面的這種使用可以解決問題: 

<!-- oracle批量插入 -->

    <insert id="inserts" parameterType="java.util.List">
       insert into PRESON
        select SEQ_PRESON_ID.NEXTVAL,A.* from(
        <foreach collection="list" item="item" index="index"

            separator="UNION">
            SELECT
            #{item.presonName},
            #{item.presonTel},
            #{item.presonEmail},
            #{item.presonAge}
            from dual 
             </foreach>
        ) A

    </insert>

<!--sql Server批量匯入-->

<insert id="importData" parameterType="com.ydtx.bean.pojo.materialsManage.MaterialApplyOutDetail" useGeneratedKeys="true" keyProperty="id">
insert into tb_mtl_Materialapplyoutdetail(applyCode,materialType,material,model,applyNum,unit,remark) 
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.applyCode,jdbcType=VARCHAR},
#{item.materialType,jdbcType=VARCHAR},
#{item.material,jdbcType=VARCHAR},
#{item.model,jdbcType=VARCHAR},
#{item.applyNum,jdbcType=DOUBLE},
#{item.unit,jdbcType=VARCHAR},
#{item.remark,jdbcType=VARCHAR}