zl程序教程

您现在的位置是:首页 >  其他

当前栏目

mybatis 批量插入 Column count doesn‘t match value count at row 1

2023-03-14 22:48:42 时间

错误写法:

INSERT INTO table (id, a, b) values
<foreach collection="lists" close=")" open="(" index="i" item="item" separator=",">
    #{item.id},
    #{item.a},
    #{item.b}
</foreach>

正确写法:注意括号位置

INSERT INTO table(id, a, b) values
<foreach collection="lists" index="i" item="item" separator=",">
    <!--注意括号位置-->
    (
    #{item.id},
    #{item.a},
    #{item.b}
    )
</foreach>

错误sql:

INSERT INTO table(id, name, value) values ( ?,?,?,?,?,?)  整个括号括起来了

正确的sql:

INSERT INTO table(id, name, value) values ( ?,?,?),(?,?,?)

发现写法错误,open 和close  不应该写括号,open和close是在整个的前后加内容 而不是  循环的每个迭代