MySQL 之 sql injection violation, multi-statement not allow

 java.sql.SQLException: sql injection violation, multi-statement not allow : update news_article
        set  status=3
        where status=2 and  now() between   effective_time  and  invalid_time;
        update news_article
        set  status=4
        where status=3  and  invalid_time <  now()
    at com.alibaba.druid.wall.WallFilter.checkInternal(WallFilter.java:808)
    at com.alibaba.druid.wall.WallFilter.connection_prepareStatement(WallFilter.java:259)
    at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:568)
    at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:930)

 

 
<update id="UpdateArticleStatusOnLineTiming">

update news_article set status=3 where status=2 and now() between effective_time and invalid_time;

update news_article set status=4 where status=3 and invalid_time &lt; now();

</update>
解答: 不容许多条sql语句 ,

第一种方式:

<update id="UpdateArticleStatusOnLineTiming">
update article set status=3 where status=2 and now() between effective_time and invalid_time;
</update>
<update id="UpdateArticleStatusOffLineTiming"> update article set status=4 where status=3 and invalid_time &lt; now() </update>

 

第二张方式 修改配置 参考

https://www.2cto.com/kf/201712/706399.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值