幽兰生空谷
--绝世独自开

Oracle批量插入,批量更新 mapper.xml 语法格式

批量插入

第一种方式:

Oracle中可以使用java中的for循环逐条插入数据库,但是这种效率比较低,不适合一次性插入大量的数据,所以可以利用Oracle中的“dual”表实现批量处理,并且效率高。

示例:
  • 接口方法:
    /**
     * 批量同步短信记录
     * @param syncMsgDTOList
     * @return int
     */
    int insertSyncMsgBatch(List<SyncMsgDTO> syncMsgDTOList);
  • mapper.xml文件:
 <insert id="insertSyncMsgBatch">
        insert into doc( CREDATE, COMEFROM, CALLNO, CALLOWNER, MSG, SOURCEID
        , SENDERID, SENDDEPTID, SENDDATE, USESTATUS, MEMO, SYNCFLAG)
        <foreach collection="list" open="(" close=")" item="syncMsgDTO" index="index" separator="union all">
            select
            #{syncMsgDTO.creDate},
            #{syncMsgDTO.comeFrom},
            #{syncMsgDTO.callNo},
            #{syncMsgDTO.callOwner},
            #{syncMsgDTO.msg},
            #{syncMsgDTO.sourceId},
            #{syncMsgDTO.senderId},
            #{syncMsgDTO.sendDeptId},
            #{syncMsgDTO.sendDate},
            #{syncMsgDTO.userStatus},
            #{syncMsgDTO.memo},
            #{syncMsgDTO.syncFlag}
            from dual
        </foreach>
    </insert>

第二种方式:

  • mapper.xml
<insert id="insertorUpdateLastPrice"  parameterType="list">
        INSERT INTO lastsell (ERP_LASTPRICE_ID,ORG_CODE, COMPAY_NAME, PRODUCT_CODE, ERP_CODE, LATEST_SALES_PRICE,
        SYNC_FLAG, CREATE_USER_ID, CREATE_TIME, UPDATE_USER_ID, UPDATE_TIME)
        <foreach open="values(" separator="),(" collection="list"
                 item="item" close=")">
            #{item.id},
            #{item.org_code},
            #{item.org_name},
            #{item.material_code},
            #{item.customer_code},
            #{item.latest_salePrice},
            '0',
            '1',
            date(#{item.creation_time}),
            '1',
            date(#{item.modified_time})
        </foreach>
    </insert>

批量更新

  • 接口方法:
int batchDeleteData(@Param("ids")  String[] ids);
  • mapper.xml文件
<update id="batchDeleteData">
        update TZ_XJLT_PARTNER set STATUS='0' where ID in
        <if test="ids!=null">
            <foreach collection="ids" open="(" close=")" separator=","
             item="id">
        #{id}
            </foreach>
        </if>
 </update>

赞(2) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Oracle批量插入,批量更新 mapper.xml 语法格式》
文章链接:https://www.itheibai.com/archives/1028
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册