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

相关推荐
qq_334466866 小时前
删除SSMS的历史登录记录
数据库·sql
CarIise6 小时前
MyBatis动态SQL:从条件拼接到底层原理实战
mybatis
小宋102110 小时前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql
不恋水的雨10 小时前
gbase中union all导致末尾多出空格的坑
数据库·sql·mysql
曹牧12 小时前
PL/SQL Developer:导出建表语句
数据库·sql
CarIise17 小时前
Spring Boot图片展示与统一返回格式:从资源映射到泛型封装实战
mybatis
润乾软件17 小时前
LLM 规划,编译器生成:以工作流为契约的确定性 SQL 生成器
人工智能·sql·sqlazy
泡海椒17 小时前
JQuick-Excel 字段映射实战:用 MAPPING 固化 Excel 表头与业务字段契约
xml·java·开发语言·excel
oradh19 小时前
Oracle固定执行计划的方法----SQL Profie(二)
数据库·sql·oracle
钝挫力PROGRAMER1 天前
开发踩坑记:MyBatis selectKey、空 SQL
数据库·sql·mybatis