【无标题】我的druid批量更新大坑

使用druid批量更新的大坑

大概提示是 multi-statement not allowed,然后查了一些文档,发现https://blog.csdn.net/sinat_23893027/article/details/101034094
这个里面的设置都设置过了,还是提示;
后面又找了
https://www.cnblogs.com/kelelipeng/p/11981999.html#:~:text=Cause%3A%20java.sql.SQLException%3A%20sql%20injection%20violation%2C%20multi-statement%20not,allow%20%E5%BC%82%E5%B8%B8%E3%80%82.%20%E5%AF%BC%E8%87%B4%E8%AF%A5%E5%BC%82%E5%B8%B8%E5%87%BA%E7%8E%B0%E6%98%AF%E5%9B%A0%E4%B8%BADruid%E7%9A%84multiStatementAllow%E9%BB%98%E8%AE%A4%E6%98%AFfalse%EF%BC%8C%E6%89%80%E4%BB%A5%E9%9C%80%E8%A6%81%E5%BC%80%E5%90%AF%EF%BC%8C%E8%AE%BE%E7%BD%AE%E6%88%90true%E3%80%82.%20%E4%B8%80%E3%80%81%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95.%20%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%EF%BC%8C%E6%B7%BB%E5%8A%A0allowMultiQueries%3Dtrue.%20%E9%85%8D%E7%BD%AE%E7%9B%91%E6%8E%A7%E7%BB%9F%E8%AE%A1%E6%8B%A6%E6%88%AA%E7%9A%84filters%EF%BC%8C%E5%8E%BB%E6%8E%89%E5%90%8E%E7%9B%91%E6%8E%A7%E7%95%8C%E9%9D%A2sql%E6%97%A0%E6%B3%95%E7%BB%9F%E8%AE%A1%EF%BC%8C%27wall%E2%80%99%E7%94%A8%E4%BA%8E%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%8C%E6%AD%A4%E5%A4%84%E5%8E%BB%E9%99%A4%E9%98%B2%E7%81%AB%E5%A2%99.%20spring.datasource.druid.filters%3Dconfig%2Cstat%2Cslf4j.%20%E9%85%8D%E7%BD%AE%E8%BF%87%E6%BB%A4%E5%99%A8wall%E7%9A%84%E5%8F%82%E6%95%B0.
按这个修改了yml文件,估计是之前配置的没配对,spring.datasource.druid.filter, 中间少了druid一级,所以导致没生效

SharingJDBC 是一个用于读写分离的 Java 数据库中间件,可以通过将读操作和写操作分别路由到不同的数据库节点,以提高数据库读写能力和性能。 Druid 是一个开源的数据库连接池组件,它提供了连接池管理、SQL 解析、SQL 优化、SQL 状态监控和统计以及批量处理等功能。然而,Druid 在进行批量更新操作时存在一定的限制。 具体而言,Druid批量更新操作是通过 JDBC 的批处理机制来实现的,即将一批更新操作打包成一个批次进行执行。但是,由于数据库的不同实现,对批量更新的支持程度各不相同。有些数据库如 MySQL 对批量更新的支持非常好,而有些数据库如 Oracle 的支持则相对较弱。 因此,由于数据库的差异性,Druid 在进行批量更新操作时可能会遇到一些限制,特别是在某些数据库环境下。在这种情况下,即使使用了 SharingJDBC 进行读写分离,也不能解决 Druid 本身的批量更新限制。 为解决这个问题,我们可以考虑以下几种方案: 1. 如果数据库支持批量更新操作,可以尝试使用数据库的原生批量更新功能,而不是依赖于 Druid 的批量处理机制。 2. 对于不支持或支持较弱的数据库,可以通过自行编写代码,将多次更新操作组织在同一个事务中,以减少数据库的交互次数,并提高性能。 3. 如果对批量更新操作的性能要求不高,也可以将更新操作拆分成多个单个更新操作,逐一执行。 总之,虽然 Druid 在某些数据库环境下可能不能进行高效的批量更新操作,但我们可以通过其他手段来解决这个问题,以提高系统的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值