zoukankan      html  css  js  c++  java
  • mybatis-plus -- mapper中foreach循环操作(新增,或修改)

    1.循环添加

    接口处:

    分别是 void 无返回类型 ;有的话是(resultType)返回类型,参数类型(parameterType) list , 

    如:

    在mapper文件中分别对应ID,参数类型和返回类型。

    循环处理,如下:

        <insert id="insertPack" parameterType="java.util.List">
            insert into t_ev_bu_pack
            (
                PACK_CODE,
                BIN,
                PACK_PROD_TIME,
                CREATED_DATE,
                CREATED_BY,
                BATTERY_CLASS,
                SUPPLIER_NAME,
                TERMINAL_USER
            )
            values
            <foreach collection="list" item="item" index="index" open="" close="" separator=",">
            (
                #{item.PACK_CODE},
                #{item.BIN}, 
                #{item.PACK_PROD_TIME},
                now(),
                #{item.CREATED_BY},
                #{item.BATTERY_CLASS},
                #{item.SUPPLIER_NAME},
                #{item.TERMINAL_USER}
            )
            </foreach>
        </insert>

    由于没有返回类型,只有方法ID和参数。

    循环更新:

        <update id="updatePack" parameterType="java.util.List">
            <foreach collection="list" item="item" index="index" open="" close="" separator=";">
                update t_ev_bu_pack
                <trim prefix="SET" suffixOverrides=","> 
                    <!-- BIN = #{BIN}, -->
                    <if test="item.TERMINAL_USER != null and  item.TERMINAL_USER != ''">
                        TERMINAL_USER = #{item.TERMINAL_USER},
                    </if> 
                    <if test="item.SUPPLIER_NAME != null and  item.SUPPLIER_NAME != ''">
                        SUPPLIER_NAME = #{item.SUPPLIER_NAME},
                    </if> 
                    <if test="item.PACK_PROD_TIME != null and  item.PACK_PROD_TIME != ''">
                        PACK_PROD_TIME = #{item.PACK_PROD_TIME},
                    </if> 
                    <if test="item.BATTERY_CLASS != null and  item.BATTERY_CLASS != ''">
                        BATTERY_CLASS = #{item.BATTERY_CLASS},
                    </if> 
                    LAST_UPDATED_TIME = now(),
                    LAST_UPDATED_BY = #{item.LAST_UPDATED_BY}
                </trim>
                where PACK_CODE = #{item.PACK_CODE}
            </foreach>
        </update>

    貌似有点区别,insert只需要循环取值就行了,update则更复杂点因为SET 后面又‘,’号分隔,这个update 是循环所有数据,每条数据都有一个ID(即根据主键ID修改所以foreach在最外层),而insert只需要循环要插入的值即可(只需要循环传入的数据即可);

    自古英雄出炼狱,从来富贵入凡尘。
  • 相关阅读:
    JS闭包
    webpack管理资源
    在webpack中使用配置文件
    webpack起步
    buuctf-MISC 面具下的flag
    Kali linux Steghide开源隐写工具
    buuctf-misc 九连环
    buuctf-Crypto rsarsa 1
    buuctf-web HardSQL 1
    buuctf-web Hack World 1
  • 原文地址:https://www.cnblogs.com/yunliu0603/p/11213211.html
Copyright © 2011-2022 走看看