INSERT INTO sg_article_tag (article_id, tag_id) VALUES (1, 1),(1, 2), (1, 3), (1, 4) ON DUPLICATE KEY UPDATE article_id=VALUES(article_id), article_id=VALUES(article_id); 补全为xml 文件
时间: 2023-09-02 09:14:52 浏览: 190
在Spring中用select last_insert_id()时遇到问题
可以将该 SQL 语句补全为 Mybatis XML 文件中的 SQL 语句,如下所示:
```xml
<insert id="batchInsertOrUpdateArticleTag" parameterType="java.util.List">
INSERT INTO sg_article_tag (article_id, tag_id)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.articleId}, #{item.tagId})
</foreach>
ON DUPLICATE KEY UPDATE
article_id=VALUES(article_id), tag_id=VALUES(tag_id)
</insert>
```
上述代码中,使用了 Mybatis 的 `<foreach>` 标签来进行批量插入操作,将 List 集合中的数据逐一插入到数据库中。当遇到主键冲突时,使用 MySQL 的 `ON DUPLICATE KEY UPDATE` 语句来执行更新操作。
需要注意的是,这里的 `batchInsertOrUpdateArticleTag` 方法的参数类型为 `java.util.List`,表示要插入的数据集合。在使用该方法时,需要将要插入的数据封装成一个 List 集合,并传入到该方法中。
另外,这里的字段名和表名都是根据示例 SQL 语句中的字段名和表名来定义的,如果在实际项目中,表名或字段名有所变化,需要相应地进行修改。
阅读全文