springboot druid 数据库批量更新错误 multi-statement not allow
2017-09-06 14:15
1326 查看
springboot druid 在写批量更新的时候出现错误
需要WallConfig设置multiStatementAllow=true
Caused by: java.sql.SQLException: sql injection violation, multi-statement not allow com.alibaba.druid.wall.WallFilter.check(WallFilter.java:714) at com.alibaba.druid.wall.WallFilter.connection_prepareStatement(WallFilter.java:240) at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:448) at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:928) at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:122) at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:448) at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:342) at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:318)
需要WallConfig设置multiStatementAllow=true
@Configuration public class DruidDBConfig { private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class); @Bean //声明其为Bean实例 @Primary //在同样的DataSource中,首先使用被标注的DataSource @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource(){ DruidDataSource datasource = new DruidDataSource(); List<Filter> filters = new ArrayList<>(); filters.add(wallFilter); datasource.setProxyFilters(filters); return datasource; } @Autowired WallFilter wallFilter; @Bean(name = "wallConfig") WallConfig wallFilterConfig(){ WallConfig wc = new WallConfig (); wc.setMultiStatementAllow(true); return wc; } @Bean(name = "wallFilter") @DependsOn("wallConfig") WallFilter wallFilter(WallConfig wallConfig){ WallFilter wfilter = new WallFilter (); wfilter.setConfig(wallConfig); return wfilter; } }
相关文章推荐
- Druid执行多条SQL异常:Cause: java.sql.SQLException: sql injection violation, multi-statement not allow
- MySql+Mybatis+Druid之SqlException:sql injection violation, multi-statement not allow
- MySql+Mybatis+Druid:sql injection violation, multi-statement not allow
- MySql+Mybatis+Druid:sql injection violation, multi-statement not allow
- SpringBoot+Mybatis+Druid批量更新multi-statement not allow异常
- springboot 启动错误 出现Caused by: java.lang.ClassNotFoundException: ch.qos.logback.classic.Level
- Mysql 批量更新操作的时候出错 “Multi-statement transaction required more than 'max_binlog_cache_size' bytes of s
- springboot mybaits 批量更新报错:updateBatch-Inline
- Spring Boot之mvnw的启动错误Could not find or load main class org.apache.maven.wrapper.MavenWrapperMain
- 搭建基于springboot的SSM项目时数据库出现的错误解决
- SpringBoot错误信息总结(不定时更新)
- SpringBoot项目创建报:java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication错误的解决方案
- spring 批量更新数据 ---- BatchPreparedStatementSetter
- 千遍一律的multi-statement not allow解决方案对我没用
- Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新
- Spring boot app动态更新数据库表
- Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新
- spring boot 启动错误:Could not resolve placeholder
- Linq连接数据库发生错误,提示"...SQL Server does not allow remote connections..."
- spring boot 启动错误:Could not resolve placeholder