由控制台可见,其mybatis默认不支持多条语句的更新,需要设置相关属性。从社区里看到的解决方案大致思路为,先检查本地配置文件的url中是否配置了allowMultiQueries=true,如果配置了,但还是不起作用,再写一个配置类来解决。
查看本地的application.yml文件中的
url: jdbc:mysql://127.0.0.1:3306/demo?allowMultiQueries=true
没有加的记得加上 allowMultiQueries=true
这个时候大多数情况下基本是可以解决问题了的,如果还是报错的话 就直接在配置文件中添加配置
在配置类MyBatisPlusConfig中 (mybatis 的话就在MyBatisConfig中改,没有配置文件的话就加一个)添加如下配置就可以了
@Configuration
public class MyBatisPlusConfig{
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
List<Filter> filterList = null;
DruidDataSource druidDataSource = new DruidDataSource();
List<Filter> proxyFilters = druidDataSource.getProxyFilters();
boolean isExit = false;
for(Filter filter:proxyFilters){
if(filter instanceof WallFilter){
((WallFilter) filter).setConfig(wallConfig());
isExit = true;
}
}
if(!isExit){
filterList= new ArrayList<>();
filterList.add(wallFilter());
druidDataSource.setProxyFilters(filterList);
}
return druidDataSource;
}
@Bean
public WallFilter wallFilter(){
WallFilter wallFilter = new WallFilter();
wallFilter.setDbType(DbType.MYSQL.getDb());
wallFilter.setConfig(wallConfig());
return wallFilter;
}
@Bean
public WallConfig wallConfig(){
WallConfig config = new WallConfig();
config.setMultiStatementAllow(true);//允许一次执行多条语句
config.setNoneBaseStatementAllow(true); //允许非基本语句的其他语句
return config;
}
}
这个时候请重启项目就可以了