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

相关推荐
龙仔7251 小时前
SQL Server 批量多库只读账号一键脚本(带逐行注释完整脚本 + 分段逐句详细解释)
服务器·数据库·sql·sqlserver·dba
明天谭3 小时前
EzCloud自定义BI报表模块源码解析:动态SQL查询、可视化图表与多租户数据统计实现
数据库·sql·数据报表·bi可视化·ezcloud·java动态sql
爸爸6197 小时前
30 原始 SQL 查询与聚合统计:querySql 实战
数据库·sql·华为·harmonyos·鸿蒙系统
喜欢的名字被抢了19 小时前
Python实战:SQLAlchemy ORM与FastAPI项目集成
开发语言·python·sql·教程·fastapi
从此以后自律1 天前
MyBatis-Plus 内置分页、PageHelper 自定义分页
mybatis
醉城夜风~1 天前
SQL DQL数据查询语言全套学习笔记(基础查询→执行顺序全解析)
笔记·sql·学习
4154111 天前
MyBatis-Plus + PostGIS 实战(1.1):Geometry 字段在 Swagger 中的优雅展示
java·mybatis·postgis
Csvn1 天前
📊 SQL 入门 Day 1:SELECT & WHERE — 数据查询的基本功
后端·sql
JustNow_Man1 天前
【Claude Code】 中给 Python + XML 项目建立可靠验证体系
xml·linux·python
苍狼唤1 天前
SQL+C# 增删改查(练习)
数据库·sql·c#