myBatis 批量插入oracle

5 篇文章 0 订阅
2 篇文章 0 订阅

一直对myBatis似懂非懂,最近遇见了几个问题和大家分享下,也是做个笔记

场景:批量插入数据

影响当中sql 应该是这样的:insert () values(),可是这么想当然的写到mapper中,但是总报sql语法错误。仔细检查也没看出哪有问题,无奈只好问问古老师。当然有同仁们遇到了同样的问题,解决办法如下,虽然看的不是很习惯。

<insert id="insertBatch" parameterType="java.util.List">
        insert into VDS_MODIFY_FLOW (CAR_CODE, BEFORE_VAL, AFTER_VAL,
        MODULES, ITEM, MODIFY_DATE,MODIFY_CODE,VAL_TYPE)
        <foreach collection="list" item="flow" index="index" separator="union all">
            (select #{flow.carCode,jdbcType=VARCHAR}, #{flow.beforeVal,jdbcType=VARCHAR},
            #{flow.afterVal,jdbcType=VARCHAR},
            #{flow.modules,jdbcType=blob}, #{flow.item,jdbcType=<span style="font-family: Arial, Helvetica, sans-serif;">blob</span>}, #{flow.modifyDate,jdbcType=TIMESTAMP},
            #{flow.modifyCode,jdbcType=VARCHAR},#{flow.valType,jdbcType=VARCHAR}
            from dual)
        </foreach>
    </insert>
执行成功。总算是松了口气。出去抽了一根烟以示对自己的犒赏。可好景不长,一个新的问题又摆在了加班狗的面前,当modules的值太大的时候,值会被加到item中。很是无奈。还是古老师给人们指引了正确的方向,把ojdbc14 换成了ojdbc6,这样算是万事大吉,至今相安无事,坐等下班。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值