>>技术应用:MySQL查询出现:Query was empty

一、问题出现

今日同事那边暴露出来一个错误,然后截图如下:
在这里插入图片描述
根据问题出现的原因,大体意思是查询是空或无效的 SQL 语句或SQL 语句为空,根据截图自己也百度了下具体的问题,意思差多不,但是还是不知道SQL语句为啥为空,然后根据接口对应的SQL,然后一步步去解析问题出现的原因。

二、问题出现的可能性猜测

根据网上搜寻的答案,大体上有下面几种可能:
1、SQL不存在;
2、MyBatis批量修改出现mysql的SQL不存在,使用的是模版QL;
3、mysql中数据类型decimal没有设置默认值,且在执行过程中容易出现NPE;

三、问题核对

核对了上述几种情况,发现我这边字段类型使用的是decimal,但是不足以造成这种情况,已经核对了SQL脚本正确且已经形成,因为在另一个项目中也是这种情况,并没有造成Query was empty,此时排除1。当前项目中并没有使用到MyBatis,而是使用的Spring JdbcTemplate,所以也排除了2。针对3这种情况,我这边的的确确是使用的这种数据类型,但在另外一个项目也正常显示,我把SQL脚本放到数据库也是可以正常显示数据,所以也排除了这个3。

四、具体原因分析

那具体是什么原因呢?后来了解到,前端在调用接口时,将数据接口调用一次之后存储到了redis,然后每次读取接口并不是实时从项目中获取,而是读取的redis中的数据,而此时数据库中的SQL模版我这边已经替换掉了,但是redis并没有更新,导致找不到SQL模版。

五、解决办法

解决办法:清理掉redis的数据,重新调取接口即可。

六、参考资料

参考资料:
1、https://blog.csdn.net/qq_38776922/article/details/78522365
2、https://www.php.cn/mysql-tutorials-72530.html
3、https://blog.csdn.net/weixin_41751625/article/details/79465160
4、https://blog.csdn.net/u012373281/article/details/109530924
5、https://blog.csdn.net/java_zhangshuai/article/details/98077548

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六月暴雪飞梨花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值