Mybatis xml动态SQL 判断失效问题

1、问题描述

在xml中查询语句通常会用到if test判断实现动态SQL查询,但是当判断等于的时候一个符号之差会导致动态SQL失效,从而直接拼装上SQL语句。

2、示例

bash 复制代码
<if test="checkFinishStatus!=null and checkFinishStatus = 1">
    and t1.check_status != '0'
</if>

如上所示,如果这样判断的话,会导致即便checkFinishStatus参数不传值,也会将SQL语句拼装上去。因为判断等于 应该用 == 而不是 =。

3、结语

这个可能也是Mybatis的一个BUG,因为我在参数传递值的时候,没有checkFinishStatus这个传参,结果因为等于符号的问题,直接拼装了SQL,导致找了半天问题所在才发现。

相关推荐
流烟默33 分钟前
Spring Boot 异常响应被序列化为 XML 的排查与修复
xml·spring boot·后端
mmsx1 小时前
Android 地图上绘制 KML:解析、样式与渲染
android·xml
刘胡子大叔2 小时前
旧 SQL 在新 PG 上能不能跑
数据库·sql
软件交付观察室3 小时前
数据大屏总数与明细为什么对不上?2026项目开发排查指南
软件测试·数据库·sql·sqlite·数据可视化
云絮.3 小时前
mybatis(二)
java·数据库·mybatis
不会C语言的男孩3 小时前
libxml2 源码编译与 XML 读取验证(x86 / ARM)
xml·c语言·嵌入式
the局外人4 小时前
学会 SQLAlchemy 搭建 Python 与 MySQL 之间的数据访问桥梁 🚀
后端·python·sql
冰暮流星4 小时前
mysql索引失效的情形
数据库·笔记·sql·mysql
Navicat中国5 小时前
SQL 编辑器生产力:重构与实时错误检测
数据库·sql·重构·编辑器·navicat
2601_962780915 小时前
2027风险管理岗准备路线:数学与应用数学专业如何补齐金融、SQL与Python
python·sql·金融