MyBatis中批量插入、删除、更新

批量插入

方法一:

<insert id="insertbatch" parameterType="Java.util.List">

    <selectKey keyProperty="fetchTime" order="BEFORE" resultType="java.lang.String">

        SELECT CURRENT_TIMESTAMP()

    </selectKey>

        insert into kangaiduoyaodian ( depart1, depart2, product_name, generic_name, img, product_specification, unit, approval_certificate, manufacturer,

       marketPrice, vipPrice, website, fetch_time, productdesc ) values

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

        ( #{item.depart1}, #{item.depart2}, #{item.productName}, #{item.genericName}, #{item.img},  #{item.productSpecification}, #{item.unit},

        #{item.approvalCertificate}, #{item.manufacturer}, #{item.marketprice}, #{item.vipprice}, #{item.website}, #{fetchTime}, #{item.productdesc} )

    </foreach>

</insert>


方法二:

<insert id="batchInsertB2B" parameterType="ArrayList">

    insert into xxxxtable(hkgs,hkgsjsda,office,asdf,ddd,ffff,supfullName,classtype,agent_type,remark)

    <foreach collection="list" item="item" index="index" separator="union all">

        select #{item.hkgs,jdbcType=VARCHAR}, #{item.hkgsjsda,jdbcType=VARCHAR}, #{item.office,jdbcType=VARCHAR}, #{item.asdf,jdbcType=VARCHAR},

        #{item.ddd,jdbcType=VARCHAR}, #{item.ffff,jdbcType=VARCHAR}, #{item.supfullName,jdbcType=VARCHAR},0,0, #{item.remark,jdbcType=VARCHAR} from dual

    </foreach>

</insert>

可以考虑用union all来实现批量插入。

例如:

insert into XX_TABLE(XX,XX,XX) select 'xx', 'xx', 'xx' union all select  'xx', 'xx', 'xx' union all select 'xx', 'xx', 'xx' ...

先拼装好语句再动态传入insert into XX_TABLE(XX,XX,XX) 后面部分


批量删除

<!-- 通过主键集合批量删除记录 -->

<delete id="batchRemoveUserByPks" parameterType="java.util.List">

    delete from ld_user where id in

    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">

        #{item}

    </foreach>

</delete>


批量更改

<update id="updateOrders" parameterType="java.util.List">

   update orders set state = '0' where no in
    
    <foreach collection="list" item="nos" open="(" separator="," close=")">

        #{nos}

    </foreach>

</update> 



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值