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

相关推荐
q***07145 小时前
Spring Boot 中使用 @Transactional 注解配置事务管理
数据库·spring boot·sql
m***92385 小时前
【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串
数据库·sql·mysql
合作小小程序员小小店7 小时前
图书管理系统,基于winform+sql sever,开发语言c#,数据库mysql
开发语言·数据库·sql·microsoft·c#
p***924813 小时前
深入理解与实战SQL IFNULL()函数
数据库·sql·oracle
Y***985117 小时前
DVWA靶场通关——SQL Injection篇
数据库·sql
蒋士峰DBA修行之路17 小时前
实验二十八 SQL PATCH调优
数据库·sql·gaussdb
I***t71618 小时前
一条sql 在MySQL中是如何执行的
数据库·sql·mysql
n***F8751 天前
修改表字段属性,SQL总结
java·数据库·sql
a***59261 天前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
喂自己代言1 天前
常见的关系型数据库有哪些?如何安装和使用Postgres?(中英双语版)
sql·postgresql·database