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

相关推荐
lbb 小魔仙9 分钟前
MyBatis-Plus 系统化实战:从基础 CRUD 到高级查询与性能优化
java·性能优化·mybatis
Apple_羊先森22 分钟前
ORACLE数据库巡检SQL脚本--13、临时表空间使用率
数据库·sql·oracle
Aloudata31 分钟前
存量数仓宽表治理:基于 NoETL 语义编织实现指标统一管理
大数据·sql·数据分析·自动化·etl·指标平台
spencer_tseng4 小时前
Stream not available [SysDictDataMapper.xml]
xml·java
Mr_Xuhhh11 小时前
MySQL函数详解:日期、字符串、数学及其他常用函数
java·数据库·sql
tb_first15 小时前
SSM速通3
java·jvm·spring boot·mybatis
tb_first16 小时前
SSM速通4
java·jvm·spring·tomcat·maven·mybatis
程可爱16 小时前
springboot整合mybatis和postgresql
spring boot·postgresql·mybatis
司沐_Simuoss16 小时前
Text to SQL系统的千层套路~
数据库·人工智能·sql·语言模型·系统架构
risc12345617 小时前
【Elasticsearch】LeafDocLookup 详述
大数据·elasticsearch·mybatis