对于一般的插入语句
insert into sys_user_post(user_id, post_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.postId})
</foreach>
插入一条数据,这样的写法是可以的,但是如果需要插入2条以上的数据,就会引起错误
ORA-00933: SQL 命令未正确结束
正确的写法为
insert into sys_user_post(user_id, post_id)
<foreach item="item" collection="list" separator="UNION ALL">
select
#{item.userId},
#{item.postId}
from dual
</foreach>
并且在insert标签上加入
useGeneratedKeys="false"
并且记得将values
关键字去掉