mybatis-plus -- mapper中foreach循環操做(新增,或修改)

1.循環添加java

接口處:app

分別是 void 無返回類型 ;有的話是(resultType)返回類型,參數類型(parameterType) list , ide

如:spa

在mapper文件中分別對應ID,參數類型和返回類型。code

循環處理,以下:blog

<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和參數。接口

循環更新:it

<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只須要循環要插入的值便可(只須要循環傳入的數據便可);io

相關文章
相關標籤/搜索