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

相关推荐
独泪了无痕7 小时前
MyBatis魔法堂:结果集映射
后端·mybatis
jieyucx10 小时前
SQL 查询终极高阶通鉴:从零基础拆解到工业级多表联查、窗口函数与索引优化
数据库·sql
就叫_这个吧13 小时前
IDEA Mybatis xml文件,实现sql语句联想,自动填入补充
xml·mysql·intellij-idea·mybatis
北顾笙98014 小时前
MYSQL-day03
数据库·sql·mysql
熠熠仔15 小时前
Spring Boot 与 MyBatis-Plus 空间几何数据集成指南
spring boot·后端·mybatis
范什么特西16 小时前
配置文件xml和properties
xml·前端
北风toto17 小时前
本体和智能体协同核心5步骤(生成sql语句)
数据库·sql
范什么特西17 小时前
重点:mybatis注意细节
java·mysql·mybatis
德迅云安全-小潘17 小时前
网站遭遇SQL注入攻击?应急处置、漏洞修复与长效防御完整方案
网络·sql·oracle
接着奏乐接着舞18 小时前
springboot mp mybatis plaus
windows·spring boot·mybatis