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

相关推荐
imDwAaY2 小时前
一条 SQL 发出去之后,MySQL 到底做了什么?
sql·mysql
刘胡子大叔13 小时前
SQL 脚本的导入顺序
数据库·sql
天空鸟_时光不老1 天前
13-亮点提炼:把技术说辞翻译成业务价值
java·spring boot·spring·spring cloud·mybatis
lvqinglou1 天前
学习Sql-part1 for婷姐
sql·学习·性能优化
冰暮流星1 天前
sql之is not null运算符
数据库·sql·oracle
冰暮流星1 天前
sql之is null 运算符
java·数据库·sql
2601_962966641 天前
数学与应用数学专业准备风险管理岗,2027届秋招金融知识和工具技能怎么补?
python·sql
java资料站1 天前
四、Spring AIAlibaba · Tools(工具调用)
数据库·sql·spring
要开心吖ZSH2 天前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询