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

相关推荐
NaMM CHIN29 分钟前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
2601_9498177232 分钟前
Spring Boot3.3.X整合Mybatis-Plus
spring boot·后端·mybatis
不瘦80斤不改名43 分钟前
深入浅出 MySQL(一):一文理清 SQL 核心规范与五大分类
数据库·sql·mysql
看海的四叔3 小时前
【SQL】SQL同环比计算的多种实现方式
数据库·hive·sql·mysql·数据分析·同环比
eEKI DAND4 小时前
SQL美化器:sql-beautify安装与配置完全指南
数据库·sql
untE EADO5 小时前
Tomcat的server.xml配置详解
xml·java·tomcat
cyber_两只龙宝7 小时前
【Oracle】Oracle之SQL的转换函数和条件表达式
linux·运维·数据库·sql·云原生·oracle
LaLaLa_OvO7 小时前
mybatis 引用静态常量
java·mybatis
yaodong5187 小时前
Spring 中使用Mybatis,超详细
spring·tomcat·mybatis
uElY ITER8 小时前
VS与SQL Sever(C语言操作数据库)
c语言·数据库·sql