mysql批量处理时,allowMultiQueries=true不起作用

在数据库URL后面加上allowMultiQueries=true

url: jdbc:mysql://ip:port/table?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&useLegacyDatetimeCode=false&allowMultiQueries=true

为了使sql生效,如:

<update id="updateFlagById" parameterType="java.util.List">
    <foreach collection="list" item="item" separator=";">
        update table set del_flag = 1 where id = #{item}
    </foreach>
</update>

如果加了allowMultiQueries=true还不生效请添加以下配置:

@Bean
public DataSource clusterDataSource() {
	DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl(url);
    dataSource.setUsername(username);
    dataSource.setPassword(password);
    dataSource.setDriverClassName(driverClassName);
    // 这个配置不能和 setProxyFilters 同时配置,不然也不会起作用
//        try {
//            dataSource.setFilters(filters);
//        } catch (SQLException e) {
//            e.printStackTrace();
//        }
	List<com.alibaba.druid.filter.Filter> filterList = new ArrayList<>();
    filterList.add(wallFilter());
    filterList.add(statFilter());
    filterList.add(slf4jLogFilter());
    dataSource.setProxyFilters(filterList);
    return dataSource;
}
@Bean
public StatFilter statFilter(){
    StatFilter sf = new StatFilter();
    sf.setSlowSqlMillis(1000);
    sf.setLogSlowSql(true);
    sf.setMergeSql(true);
    return sf;
}

@Bean
public Slf4jLogFilter slf4jLogFilter(){
    Slf4jLogFilter logFilter = new Slf4jLogFilter();
    logFilter.setStatementExecutableSqlLogEnable(true);
    return logFilter;
}

@Bean
public WallFilter wallFilter(){
    WallFilter wallFilter = new WallFilter();
    wallFilter.setConfig(wallConfig());
    return wallFilter;
}

@Bean
public WallConfig wallConfig(){
    WallConfig config = new WallConfig();
    config.setMultiStatementAllow(true);//允许一次执行多条语句
    config.setNoneBaseStatementAllow(true); //允许非基本语句的其他语句
    return config;
}
配置说明
filters属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat;日志用的filter:log4;防御sql注入的filter:wall
proxyFilters类型是List<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系

在这里插入图片描述

如果有大佬知道为什么只加allowMultiQueries=true不起作用,请告诉我一声,抱拳了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值