mybatis批量插入数据 Oracle/Mysql

亲测好用!

<!-- mysql -->
  <insert id="insertBatch0" parameterType="java.util.List">
    insert into model_prop_1(id, model_id, property_name, data_type, property_value, default_Value, operator, uptime)
    values
    <foreach collection="list" item="item" index="index" separator=",">
      (
      #{item.id}, 
      #{item.modelId}, 
      #{item.propertyName},
      #{item.dataType},
      #{item.propertyValue},
      #{item.defaultValue},
      #{item.operator},
      #{item.uptime}
      )
    </foreach>
  </insert>
  
  <!-- oracle 方法1 -->
  <insert id="insertBatch" parameterType="java.util.List">
    insert all 
    <foreach collection="list" item="item" index="index">
    into model_prop_1(id, model_id, property_name, data_type, property_value, default_Value, operator, uptime)
    values
      (
      #{item.id}, 
      #{item.modelId}, 
      #{item.propertyName, jdbcType=VARCHAR},
      #{item.dataType, jdbcType=VARCHAR},
      #{item.propertyValue, jdbcType=VARCHAR},
      #{item.defaultValue, jdbcType=VARCHAR},
      #{item.operator, jdbcType=VARCHAR},
      #{item.uptime, jdbcType=VARCHAR}
      )
    </foreach>
    select 1 from dual
  </insert>
  
  <!-- oracle 方法2 -->
  <insert id="insertBatch2" parameterType="java.util.List">
    insert into model_prop_1(id, model_id, property_name, data_type, property_value, default_Value, operator, uptime)
    <foreach collection="list" item="item" index="index" separator="union all">
      select 
      #{item.id}, 
      #{item.modelId}, 
      #{item.propertyName, jdbcType=VARCHAR},
      #{item.dataType, jdbcType=VARCHAR},
      #{item.propertyValue, jdbcType=VARCHAR},
      #{item.defaultValue, jdbcType=VARCHAR},
      #{item.operator, jdbcType=VARCHAR},
      #{item.uptime, jdbcType=VARCHAR}
      from dual
    </foreach>
发布了10 篇原创文章 · 获赞 0 · 访问量 382

猜你喜欢

转载自blog.csdn.net/ayudnl/article/details/104819381