
Spring Boot 查询 SQL 为空,问题根源在哪里?
在使用 Spring Boot 查询数据库时,遇到了如下问题:使用 IDEA 执行查询返回空结果,而使用 Navicat 执行相同 SQL 语句却能成功返回数据。排查问题原因如下:
#和$的区别
在 Spring Boot 中,使用 #{} 绑定参数,表示 动态参数,会自动进行 SQL 注入防御。而使用 $() 绑定参数,表示 静态参数,不会进行 SQL 注入防御。
在本例中,使用 #{} 绑定空参数,导致 SQL 注入防御机制过滤了该参数,导致查询条件无效,返回空结果。
mybatis log插件
使用 IDEA 开发时,可以安装 mybatis log 插件。启用该插件后,可以在 IDEA 控制台查看 MyBatis 执行的 SQL 语句,从而方便排查问题。
排查步骤:
安装 mybatis log 插件设置 IDEA 日志级别为 DEBUG重新运行查询操作查看控制台打印的 SQL 语句,找出问题所在
通过以上排查步骤,可以快速定位问题原因,并解决查询为空的问题。
以上就是Spring Boot 查询 SQL 为空,为何 IDEA 返回空结果,Navicat 却能成功查询?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/45215.html
微信扫一扫
支付宝扫一扫