mybatis 批量添加修改

1、DAO层

int addStorageBatch(List<Storage> storageList);

int updateStorageBatch(@Param("storageList") List<Storage> storageList);

2、xml文件

<insert id="addStorageBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into  storage (code,name,type,pid,gmt_create,gmt_modified,is_delete)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.code,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR},
            #{item.type,jdbcType=INTEGER},#{item.pid,jdbcType=VARCHAR},
            #{item.gmtCreate,jdbcType=TIMESTAMP},#{item.gmtModified,jdbcType=TIMESTAMP},
            #{item.isDelete,jdbcType=INTEGER}
            )
        </foreach>
    </insert>

    <update id="updateStorageBatch" parameterType="java.util.List">
        <foreach collection="storageList" item="item" index="index" open="" close="" separator=";">
            update  storage
            set
            code=#{item.code},
            name=#{item.name},
            type=#{item.type},
            pid=#{item.pid},
            gmt_create=#{item.gmtCreate},
            gmt_modified=#{item.gmtModified},
            is_delete=#{item.isDelete}
            where code = #{item.code}
        </foreach>
    </update>

3、批量添加返回主键

(1)service层,直接return 传入的集合,返回集合中会给主键赋值。

storageMapper.addStorageBatch(storageList);
return storageList;

(2)DAO层,批量添加不能有@Param注解。

int addStorageBatch(List<Storage> storageList);

(3)xml文件

a、添加 useGeneratedKeys="true" keyProperty="id" ,keyProperty 主键参数:

<insert id="addStorageBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">

b、collection 中为 list,不能写成DAO层中的storageList:

<foreach collection="list" item="item" index="index" separator=",">

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值