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,导致找了半天问题所在才发现。

相关推荐
我的愿望是成为富婆6 小时前
2027校招:大数据管理与应用专业,如何用数据能力匹配电商运营与供应链管培生
人工智能·sql·excel
l1t6 小时前
DeepSeek总结的PostgreSQL中TABLESAMPLE 如何挑选行
数据库·sql
金伟API102419 小时前
不会写复杂SQL怎么办?
数据库·sql
geovindu19 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
这个DBA有点耶1 天前
PostgreSQL HOT更新:频繁更新表的索引膨胀根因与fillfactor调优
数据库·sql·postgresql
一条小小yu1 天前
Text-to-SQL Agent
数据库·sql
10mAh1 天前
【SQL】NOT IN 遇到 NULL 为什么返回空集?三值逻辑与反关联实战
jvm·数据库·sql
todoitbo1 天前
大数据平台如何选时序数据库:用业务 SQL 验证查询、留存和 Spark 链路
大数据·sql·时序数据库
事圆则缓1 天前
聊天与引用回复的 SQL 怎么设计
数据库·sql
她的男孩2 天前
权限通了、列表有数,一点分页就炸Forge Admin 用 COUNT(1) 扛住复杂待办
java·spring boot·mybatis