zoukankan      html  css  js  c++  java
  • mybatis使用foreach处理批量插入,in条件查询或更新

    有时候在操作数据库时,会进行一些批量操作,例如批量插入,in条件查询等,这时可以利用mybatis的动态sql,foreach元素进行批量操作,相对于在代码里面进行for循环批量操作数据库效率较高,以前用过很多次,现在特此记录一下,下次直接复制修改一下相关信息即可。

    第一种情况:in条件查询

        select a.* from pcn.n_lat_trans_detail a ,pcn.n_lat_loan_rsp b
        where a.tran_status='3' and a.transaction_id=b.transation_id
        and b.rsp_sts='0000' and b.rsp_msg='succ'
        and date_format(b.create_time,'%Y%m%d')  in
        <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
          #{item}
        </foreach>
    

    第二种情况:批量插入

      <insert id="batchInsert" parameterType="java.util.List">
            insert into doku_repay_rclerr_detail (id, out_transidmerchant, in_transidmerchant,
            rcl_task_id, chk_status, diff_reason,
            amount, pay_out_date, ext_field1,
            remark, create_date, update_date
            )
            VALUES
            <foreach collection="list" item="item" index="index" separator=",">
                (
                #{item.id,jdbcType=INTEGER},
                #{item.outTransidmerchant,jdbcType=VARCHAR},
                #{item.inTransidmerchant,jdbcType=VARCHAR},
                #{item.rclTaskId,jdbcType=VARCHAR},
                #{item.chkStatus,jdbcType=VARCHAR},
                #{item.diffReason,jdbcType=VARCHAR},
                #{item.amount,jdbcType=DECIMAL},
                #{item.payOutDate,jdbcType=VARCHAR},
                #{item.extField1,jdbcType=VARCHAR},
                #{item.remark,jdbcType=VARCHAR},
                #{item.createDate,jdbcType=TIMESTAMP},
                #{item.updateDate,jdbcType=TIMESTAMP}
                )
            </foreach>
        </insert>
    

    第三种情况:批量更新

    update n_lat_stppay_notify set backOne = '1'
    where cuentaBeneficiario in
    <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
        #{item}
    </foreach>
    

    其他动态sql元素参见:https://www.cnblogs.com/jasonboren/p/11394721.html

  • 相关阅读:
    微信开发之获取用户信息
    tomcat支持php
    myecplise自带的tomcat问题
    php项目报错 Warning: session_start(): open(D:/software/wamp/wamp/tmpsess_msrjot7f32ciqb1p2hr4ahejg4, O_RDWR) f
    magento获取商品的图片
    python链接mysql
    cordova,可以尝试下!
    小程序来了
    App开发需要了解的基本技术
    web APP到底和跨平台APP开发有什么区别?
  • 原文地址:https://www.cnblogs.com/jasonboren/p/14722953.html
Copyright © 2011-2022 走看看