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

相关推荐
AIHE-TECH2 小时前
多台西门子PLC控制器与SQL数据库对接(带边缘计算)的案例
数据库·sql·mysql·边缘计算·达梦数据库·西门子plc·智能网关
思成不止于此2 小时前
【MySQL 零基础入门】MySQL 函数精讲(二):日期函数与流程控制函数篇
android·数据库·笔记·sql·学习·mysql
木风小助理5 小时前
子查询与 JOIN 查询性能比较:执行机制与适用场景解析
数据库·sql·mysql
zzz大王7 小时前
sql 五十题 26-30
数据库·sql
互联网哪些事情8 小时前
服务器防御 SQL 注入
运维·服务器·sql·sql注入主机
子夜江寒8 小时前
SQL 从基础操作到高级查询
数据库·sql
NaiLuo_458 小时前
MySQL表的约束
数据库·sql·mysql
一颗宁檬不酸9 小时前
Oracle PL/SQL 过程与游标实战分享:马拉松赛事管理系统
数据库·sql·oracle
哈哈哈笑什么10 小时前
0代码写SQL!Spring AI保姆级教程:5分钟实现AI自然语言查数据,敏感查询自动拦截🚀
sql·spring·ai编程
就叫飞六吧11 小时前
Spring 框架中的 Bean 继承:`parent` 属性 (XML配置)
xml·java·spring