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

相关推荐
Devin~Y3 小时前
互联网大厂Java面试实战:Spring Boot、MyBatis、Redis、Kafka、JWT、Spring Cloud 与 AI 场景追问
java·spring boot·redis·spring cloud·kafka·mybatis·spring security
Ethan01073 小时前
mybatis插件
mybatis
OneNobody3 小时前
Spark SQL AQE工作原理源码剖析
大数据·sql·spark
kali-Myon5 小时前
深入 MySQL 内核:从临时哈希表分配机制详解 Floor 报错注入核心原理
数据库·sql·mysql·安全·web
Mikowoo0075 小时前
批量汇总XML格式的发票信息
xml·python
梦想画家6 小时前
用SQL驱动AI:Trino AI Functions跨源情报分析实战指南
sql·ai·trino
逃逸线LOF17 小时前
xml文件如何加载properties文件(spring容器加载properties文件)
xml
Csvn20 小时前
📊 SQL 入门 Day 6:多表查询 — JOIN 的四种姿势
后端·sql
扎Zn了老Fe1 天前
MyBatis-Plus必知必会:告别低效CRUD,高效开发持久层
后端·mybatis
光影6271 天前
MySQL基础入门
数据库·笔记·sql·学习·mysql·学习方法