java - mybatis的foreach批量插入的问题
怪我咯
怪我咯 2017-04-18 10:01:56
[Java讨论组]

如下:

INSERT INTO my_occur_hist (
    id,
    flow_id,
    aid,
    processor,
    node,
    STATUS,
    result,
    last_flow_id,
    last_processor,
    last_result,
    created_time,
    updated_time
)
VALUES
<foreach item="item" collection="list" open="(" separator="," close=")">
    NULL,
    #{item.flowId}, 
    #{item.aid}, 
    #{item.processor}, 
    #{item.node}, 
    #{item.status},
    #{item.result},
    #{item.lastFlowId},
    #{item.lastProcessor},
    #{item.lastResult},
    NOW(),
    NOW()
</foreach> 

这样,批量插入的时候老是出问题,一个个都插入的时候,没有问题,是为什么??

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
巴扎黑

你这使用的是mysql数据库的方言,标准语句如下:

insert into table(col1,col2) values(val1_1,val1_2),(val2_1,val2_2)

其实你把控制台mybatis打印的sql语句复制出来就立马能发现问题,你这个打印的sql应该是这样的:

insert into table(col1,col2) values(val1_1,val1_2,val2_1,val2_2)

正确的写法应该是这样的,插入的每一条数据都要有括号:

insert into .....

<foreach  item="item" collection="list" separator=",">
  (  null,
      #{item.flowId},
      now()
    )
</foreach>
PHP中文网

语法不正确,用INSERT ALL,http://blog.csdn.net/nsj820/a...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号