开发者社区 问答 正文

mybatis批量插入出错,求解???? 400 报错

mybatis批量插入出错,求解???? 400 报错 配置文件如下:
<insert id="insertBatch" parameterType="java.util.List">
insert into VIS_CUST_SCENIC
(   id,
    name)
 values
 <foreach collection="orderList" item="order" index="index"  
                  separator=", ">
    (#{order.id,jdbcType=VARCHAR},
#{order.name,jdbcType=VARCHAR})
</foreach>
</insert>


但是错误信息提示sql语句出错:

insert into order    (   id,        name)    values             (?,    ?)    ,         (?,    ?)

直接成循环了,网上找了不少,都说是这样配置的,不知道是不是少配置了什么东西~~~~~~

展开
收起
爱吃鱼的程序员 2020-06-03 14:51:32 427 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    搞定了,其实很简单,我发的是mysql上可以用的,oracle是不行的

    <insert id="insertBatch" parameterType="java.util.List">
    insert into VIS_CUST_SCENIC
    (   id,
        name)
    --这里去掉values
     <foreach collection="orderList" item="order" index="index"  
                      separator="union all ">
         (#{order.id,jdbcType=VARCHAR},
    #{order.name,jdbcType=VARCHAR})
    </foreach>

    </insert>


    ######

    上面还是错的

    <insert id="insertBatch" parameterType="java.util.List"> 
    insert into VIS_CUST_SCENIC 
    (   id, 
        name) 
    --这里去掉values 
     <foreach collection="orderList" item="order" index="index"   
                      separator="union all "> 
         (select #{order.id,jdbcType=VARCHAR}, 
    #{order.name,jdbcType=VARCHAR} from dual) 
    </foreach> 

    </insert>

    2020-06-03 17:13:57
    赞同 展开评论