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

相关推荐
还是做不到嘛\.4 小时前
Dvwa靶场-SQL Injection
数据库·sql·web安全
lifewange9 小时前
SQL 中 IN 和 AND 可以搭配使用么?
数据库·sql
lzhdim11 小时前
SQL 入门 7:SQL 聚合与分组:函数、GROUP BY 与 ROLLUP
java·服务器·数据库·sql·mysql
lifewange11 小时前
INSERT INTO ... SELECT ...
数据库·sql
弹简特11 小时前
【JavaEE】Mybatis实现分页查询功能
java·java-ee·mybatis
Uso_Magic11 小时前
SQLSERVER__EXPLAIN 常用分析案例。
服务器·数据库·sql
The Sheep 202314 小时前
C# 操作XML
xml·前端·c#
不吃香菜学java15 小时前
苍穹外卖-新增套餐
java·spring boot·spring·tomcat·maven·mybatis
有梦想的小何15 小时前
告别 N+1:MyBatis-Plus 批量同步优化套路(预加载、去重、批量落库)
mybatis
sxhcwgcy15 小时前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis