mybatis 批量插入问题
错误的写法
INSERT INTO t_csm_customer_product(id, customer_code, product_code) values
<foreach collection="lists" close=")" open="(" index="i" item="cstProduct" separator=",">
#{cstProduct.id},
#{cstProduct.customerCode},
#{cstProduct.productCode}
</foreach>
异常信息 Error updating database.
Cause: java.sql.SQLException: Column count doesn't match value count at row 1 发现sql语句并不是我们想要的,
错误sql:
INSERT INTO table(id, name, value) values ( ?,?,?,?,?,?) 整个括号括起来了
正确的sql:
INSERT INTO table(id, name, value) values ( ?,?,?),(?,?,?)
发现写法错误,open 和close 不应该写括号,open和close是在整个的前后加内容 而不是 循环的每个迭代
正确的写法
INSERT INTO t_csm_customer_product(id, customer_code, product_code) values
<foreach collection="lists" index="i" item="cstProduct" separator=",">
(#{cstProduct.id},
#{cstProduct.customerCode},
#{cstProduct.productCode})
</foreach>
如果您觉得文章对您有用,欢迎点赞关评论