zoukankan      html  css  js  c++  java
  • mybatis批量写法

    批量更新

    <update id="updPartsStatus" parameterType="com.autosys.parts.model.BesiParts">
            <foreach collection="besiParts.partIdsList" item="item" index="index" open="begin" close=";end;" separator=";">
                UPDATE TM_BESI_PART
                <set>
                    STATUS = #{besiParts.status}
                </set>
                <where>
                    ID = #{item}
                </where>
            </foreach>
        </update>

    批量添加

    <insert id="instBesiparts" parameterType="map">
            INSERT INTO TM_BESI_PART
            (
            ID,
            PART_NO,
            MODEL_CODE,
            PART_NAME,
            PART_NAME_EN,
            PART_TYPE,
            POWER_FLAG,
            PURCASING_CODE,
            REG_PLANT,
            USE_PLANT,
            PRODUCE_CODE,
            PLANT_CODE,
            NEW_FLAG,
            STATUS,
            CREATE_BY,
            CREATE_TIME,
            UPDATE_BY,
            UPDATE_TIME
            )
            <foreach collection="partsList" item="item" index="index" separator="UNION ALL">
                SELECT
                #{item.id, jdbcType=VARCHAR},
                #{item.partNo, jdbcType=VARCHAR},
                #{item.modelCode, jdbcType=VARCHAR},
                #{item.partName, jdbcType=VARCHAR},
                #{item.partNameNn, jdbcType=VARCHAR},
                #{item.partType, jdbcType=VARCHAR},
                #{item.powerFlag, jdbcType=VARCHAR},
                #{item.purcasingCode, jdbcType=VARCHAR},
                #{item.regPlant, jdbcType=VARCHAR},
                #{item.usePlant, jdbcType=VARCHAR},
                #{item.produceCode, jdbcType=VARCHAR},
                #{item.plantCode, jdbcType=VARCHAR},
                #{item.newFlag, jdbcType=VARCHAR},
                #{item.status, jdbcType=VARCHAR},
                #{item.createBy, jdbcType=VARCHAR},
                #{item.createTime, jdbcType=VARCHAR},
                #{item.updateBy, jdbcType=VARCHAR},
                #{item.updateTime, jdbcType=VARCHAR}
                FROM DUAL
            </foreach>
        </insert>

    批量Merge

    <insert id="instEmParts" parameterType="com.autosys.parts.model.EmParts">
            MERGE INTO TR_PART_EMER T1 USING (
            <foreach collection="emList" item="emParts" index="index" separator="UNION ALL">
                SELECT
                #{emParts.id} as ID,
                #{emParts.partCode} as PART_CODE,
                #{emParts.model} as MODEL,
                #{emParts.userId} as USER_ID,
                #{emParts.createBy} as CREATE_BY,
                sysdate as CREATE_TIME,
                #{emParts.updateBy} as UPDATE_BY,
                sysdate as UPDATE_TIME,
                #{emParts.partId} as PART_ID
                FROM
                dual
            </foreach>
            )
            T2 ON (
            T1.PART_ID = T2.PART_ID)
            WHEN MATCHED THEN
            UPDATE SET T1.USER_ID = T2.USER_ID, T1.UPDATE_TIME = T2.UPDATE_TIME, UPDATE_BY = T2.UPDATE_BY WHERE T1.PART_ID = T2.PART_ID
            WHEN NOT MATCHED THEN
            INSERT (
            ID,
            PART_CODE,
            MODEL,
            USER_ID,
            CREATE_BY,
            CREATE_TIME,
            PART_ID
            )
            VALUES
            (
            T2.ID,
            T2.PART_CODE,
            T2.MODEL,
            T2.USER_ID,
            T2.CREATE_BY,
            T2.CREATE_TIME,
            T2.PART_ID
            )
        </insert>
  • 相关阅读:
    mysql基础(三)存储引擎和锁
    为给定字符串生成MD5指纹
    区块链基本原理,Part-2:工作量证明和权益证明
    区块链基本原理,Part-1:拜占庭容错
    区块链挖矿 2.0
    以太坊 2.0 中的验证者经济模型,Part-2
    以太坊 2.0 中的验证者经济模型,Part-1
    Java归并排序之递归
    Python爬虫入门教程 64-100 反爬教科书级别的网站-汽车之家,字体反爬之二
    Java棋盘覆盖问题
  • 原文地址:https://www.cnblogs.com/xiaofengfree/p/12155898.html
Copyright © 2011-2022 走看看