常规sql写法

INSERT ALL
  INTO t (a,b) VALUES (1,2)
  INTO t (a,b) VALUES (3,4)
SELECT 1 FROM DUAL;

mybatis foreach 写法

<insert id="batchInsert">
    INSERT ALL
    <foreach collection="list" item="item">
        INTO A (
            ID,
            S_NUM,
            OPER_USER,
            OPER_DT,
            INSERT_DT
        ) VALUES (
            #{item.id},
            #{item.sNum},
            #{item.operUser},
            #{item.openDt},
            #{item.insertDt}
        )
    </foreach>
    SELECT 1 FROM DUAL
</insert>

使用oracle序列写法

<insert id="batchInsert" parameterType="java.util.List">
    INSERT INTO A(
        ID,
        S_NUM,
        OPER_USER,
        OPER_DT,
        INSERT_DT
    )
    SELECT 
        SEQ_A.NEXTVAL,
        t.s_num,
        t.oper_user,
        t.oper_dt,
        t.insert_dt
    FROM (
        <foreach collection="list" item="item" separator=" UNION ALL ">
            SELECT 
                #{item.sNum, jdbcType=INTEGER} AS s_num,
                #{item.operUser, jdbcType=VARCHAR} AS oper_user,
                #{item.openDt, jdbcType=DATE} AS oper_dt,
                #{item.insertDt, jdbcType=DATE} AS insert_dt
            FROM DUAL
        </foreach>
    ) t
</insert>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐