mybatisPlus批量更新multi-statement not allow问题

4 篇文章 1 订阅

由控制台可见,其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;
    }
 
}

这个时候请重启项目就可以了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿邱先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值