1. 程式人生 > >mybatis使用foreach進行批量操作 The error may involve defaultParameterMap

mybatis使用foreach進行批量操作 The error may involve defaultParameterMap

觸發現象

xml:

<insert id="insertByList">
   <foreach collection="tagList" item="tag" separator=";">
      insert into table(name)
      select #{tag} from DUAL
      where not exists (select id from table where name = #{tag})
   </foreach>
</insert>

 

異常資訊:

### The error may involve defaultParameterMap
### The error occurred while setting parameters

 

 

報錯原因

mybatis不支援一次性插入多條的語法

 

解決辦法

修改mybatis的連線引數,同意插入多條語法。新增allowMultiQueries=true

#不支援插入多條的語法示例
spring.datasource.url=jdbc:mysql://xxx:3306/xxx

#支援插入多條的連線引數示例
spring.datasource.url=jdbc:mysql://xxx:3306/xxx?allowMultiQueries=true