您的位置:首页 > 其它

千遍一律的multi-statement not allow解决方案对我没用

2017-12-26 16:13 2935 查看
multi-statement not allow 没有设置批处理,解决方案网上很多,大部分基于以下 (本人基于springBoot开发)

(1)设置WallConfig里面的multiStatementAllow 为true

(2)DB URL追加&allowMultiQueries=true

以上详细内网,网上大把不做赘述。但是对于本人没用。

druid 的配置是基于Filter的,在设置wallConfig的时候事先查看wallConfig在druidDataSource 里面的Filtter是否存在,如果已经存在那么MySqlWallProvider 这个类在初始化的时候就会有可能初始化成另外一个没有配置multiStatementAllow 为true 的Filter,然后放在缓存里面,后面就算你的wallConfig 再次被执行init函数也不再放到缓存里面去.

下面是我在初始化wallConfig的时候打的断点,明显实现就已经存在了WallConfig,如果盲目的在设置一个WallConfig都是白搭,这就是我为什么采用了网上配置之后都是没用的原因



下面这个是取druidDataSource的内容进行初始化



解决方法:在设置之前先判断是都已经存在WallConfig,如果有,直接将现有的替换掉



DB的URL的参数还是得加上&allowMultiQueries=true , 原因网上很多,自行百度,欢迎提问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐