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

相关推荐
shsh2008 小时前
mybatis plus打印sql日志
数据库·sql·mybatis
山峰哥8 小时前
数据库调优实战:索引策略与查询优化案例解析
服务器·数据库·sql·性能优化·编辑器
e***136213 小时前
MySQL 常用 SQL 语句大全
数据库·sql·mysql
山岚的运维笔记14 小时前
SQL Server笔记 -- 第53章:INSERT 第54章:主键
数据库·笔记·sql·microsoft·sqlserver
SQL必知必会15 小时前
SQL 聚合函数详解:COUNT、SUM、AVG、MIN、MAX
数据库·sql
SQL必知必会16 小时前
使用 SQL 实现帕累托原则(80/20 法则)
大数据·数据库·sql
q***765616 小时前
MySQL 中如何进行 SQL 调优
android·sql·mysql
草履虫建模21 小时前
Java面试应对思路和题库
java·jvm·spring boot·分布式·spring cloud·面试·mybatis
m***495821 小时前
LangChain-08 Query SQL DB 通过GPT自动查询SQL
数据库·sql·langchain