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

相关推荐
小魏每天都学习2 分钟前
【sql-网络拓扑-子网划分-控制流图】
数据库·sql·mysql
June bug11 分钟前
【高频SQL基础版】查询
数据库·sql·面试·跳槽
SamRol16 分钟前
达梦数据库指令 及 在Spring Boot + MyBatis-Plus上的使用
java·数据库·spring boot·mybatis·达梦·intellij idea
Dawndddddd23 分钟前
XXE(XML外部实体注入)漏洞
xml·xxe
再卷还是菜27 分钟前
网安渗透学习小结--sql注入
数据库·sql·学习
啊吧怪不啊吧2 小时前
极致性能的服务器Redis之String类型及相关指令介绍
网络·数据库·redis·分布式·mybatis
风景的人生15 小时前
mybatis映射时候的注意点
java·mybatis
玄〤16 小时前
MyBatis-Plus 核心功能详解:条件构造器、Service 封装与批量优化实践(黑马springcloud微服务课程)(day2)
spring cloud·微服务·mybatis
玄同76516 小时前
深入理解 SQLAlchemy 的 relationship:让 ORM 关联像 Python 对象一样简单
人工智能·python·sql·conda·fastapi·pip·sqlalchemy
酉鬼女又兒16 小时前
SQL21 浙江大学用户题目回答情况
数据库·sql·mysql