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

相关推荐
醉卧考场君莫笑30 分钟前
sql基础操作
数据库·sql·oracle
wheeldown1 小时前
数据库复习自用
数据库·sql·oracle
豆浆Whisky2 小时前
6小时从0到1:我用AI造了个分片SQL生成器
后端·sql·ai编程
l1t2 小时前
使用docker安装sql server linux版
linux·sql·docker·容器·sqlserver
蜗牛~turbo2 小时前
云星空 应收款账龄分析取数SQL
数据库·sql·金蝶·云星空·k3 cloud
l1t2 小时前
一个用SQL Sever求解数独的SQL
数据库·sql·sql server·数独·sudoku
雨中飘荡的记忆3 小时前
MyBatis会话模块详解
mybatis
醉卧考场君莫笑3 小时前
SQL查询基础
数据库·sql·oracle
气π3 小时前
【JavaWeb】——帝可得实践项目-App与设备端补充
java·spring boot·mybatis