06-Mybatis-は、一括挿入を行います

SQLのMySQLの実装:

INSERT DELAYED INTO SYS_JOB_WORK(JNL_NO、WORK_DT) 
 VALUES 1' AAS ' )、 2' FFFF ');

MyBatisの対応のsql:

 < 挿入 ID = "insertList"のParameterType = "java.util.Listに" useGeneratedKeys = "偽" > 
        INSERT  INTO SYS_JOB_WORK(
                JNL_NO、
                WORK_DT VALUES 
        < foreachのコレクション= "jobWorks"項目= "jobWork" インデックス= " インデックス "セパレータ=を "" > 
            #{jobWork.jnlNo、jdbcType = VARCHAR }、
            #{jobWork.workDate、jdbcType =VARCHAR } 
        </ foreachの> 
         SELECT  1  FROM DUAL
     </ インサート>

SQLのOracle実装:

 INSERT  ALL 
      INTO SYS_JOB_WORK(JNL_NO、WORK_DT)VALUES' 1 '' 2019年4月21日' INTO SYS_JOB_WORK(JNL_NO、WORK_DT)VALUES' 2 '' 2019年4月21日' INTO SYS_JOB_WORK(JNL_NO、WORK_DT )VALUES' 3 '' 2019年4月21日' SELECT  1  FROM DUALと、

MyBatisの対応のsql:

スキーム1:以下のデータは、非効率的な500より大きいこのように、このように、データは、好ましくは500以下であります

    < 挿入 IDは= "insertList" ParameterTypeが= "java.util.Listに" useGeneratedKeys = "偽" > 
        INSERT  ALL 
        < foreachのコレクション= "jobWorks"項目= "jobWork" インデックス= " インデックスを " > 
            INTO (SYS_JOB_WORK 
                JNL_NO、
                WORK_DT VALUES 
            #{jobWork.jnlNo、jdbcType = VARCHAR }、
            #{jobWork.workDate、jdbcType = VARCHAR }
         </ foreachの> 
         SELECT  1  FROM DUAL
     </ インサート>

スキーム2は、補間バッチを有効に、タグは、すべてダミーデータUNIONによって生成された設定パラメータのリストを利用します

< 挿入 ID = "insertList"のParameterType = "java.util.Listに" > 
 INSERT  INTO SYS_JOB_WORK(JNL_NO、WORK_DT)が
  選択 A.を*  から< foreachのコレクション= "jobWorks"項目= "jobWork" インデックス= " インデックス "セパレータ= " UNION  ALL " > 
      選択 
         #{jobWork.jnlNo、jdbcType = VARCHAR }、
         #{jobWork.workDate、jdbcType = VARCHAR }
      デュアル
  </ foreachの> )A
 </ 挿入>

スキーム3:保存された手順を用いて一括挿入

< 挿入 ID = "insertList"のParameterType = "java.util.Listにする" > 
 開始
 < foreachのコレクション= "jobWorks"項目= "jobWork" インデックス= " インデックス " > 
    INSERT  INTO SYS_JOB_WORK(JNL_NO、WORK_DT) 
     の値
        #{jobWork。 jnlNo、jdbcType = VARCHAR }、
        #{jobWork.workDate、jdbcType = VARCHAR } 
    )。
  </ foreachの> 
  終わり;
<

 

おすすめ

転載: www.cnblogs.com/ming311/p/10977952.html