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

相关推荐
l1t1 小时前
DeepSeek对利用DuckDB求解Advent of Code 2021第9题“烟雾盆地”第二部分SQL的分析
数据库·人工智能·sql·递归·duckdb·deepseek·cte
程序猿20231 小时前
SQL-性能优化
数据库·sql·性能优化
寻道码路2 小时前
【GitHub周榜】WrenAI:开源SQL AI代理,让Text-to-SQL轻松实现,开启自然语言与数据交互新时代
人工智能·sql·语言模型·开源·github·aigc·ai编程
无名-CODING2 小时前
MyBatis 从入门到精通(详解版)
mybatis
前进的李工10 小时前
SQL聚合函数与分组查询详解
数据库·sql·mysql
weixin_4250230013 小时前
Spring Boot + MyBatis Plus JOIN 分页多表查询项目文档
spring boot·后端·mybatis
lkbhua莱克瓦2414 小时前
基础-函数
开发语言·数据库·笔记·sql·mysql·函数
今天有个Bug15 小时前
【计算机毕业设计】流浪动物救助平台 - SpringBoot+Vue
sql·mysql·spring·vue·毕业设计·课程设计
l1t18 小时前
一个postgresql奇怪慢查询现象的原因和解决
数据库·sql·postgresql·性能优化