Mybatis foreach 一次性插入多条 insert 报错,需数据库开启 allowMultiQueries
Mybatis foreach 多条插入语句提示 SQL 代码错误,但是一条插入语句可以。问题由以下两个点导致:
- 多条语句后面需要跟上
;
,单条语句可以不用加。 - 数据库连接 URL 没有添加
allowMultiQueries=true
。
INSERT 语句结束处添加 ;
。
file:[resources/mappers/OrderMapper.xml]
<insert id="insert">
<foreach collection="list" item="item">
INSERT INTO orders(name, num)
VALUES (#{name}, #{num});
</foreach>
</insert>
在数据库连接 URL 添加参数 allowMultiQueries=true
。
file:[src/application.yml]
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/database?allowMultiQueries=true