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

相关推荐
Hello.Reader37 分钟前
Table & SQL API 配置从“默认可用”到“针对场景调优”的一套方法论
数据库·python·sql
计算机学姐1 小时前
基于SpringBoot的美妆销售系统【个性化推荐算法+数据可视化统计+库存预警+物流信息】
java·vue.js·spring boot·后端·mysql·信息可视化·mybatis
小蜗牛的路2 小时前
docker MySQL容器导入sql文件
sql·mysql·docker
while(1){yan}3 小时前
Mybatis动态SQL
数据库·spring boot·sql·spring·java-ee·mybatis
雨中飘荡的记忆4 小时前
MyBatis设计模式之装饰器、模版方法、策略模式
mybatis
Anthony_2315 小时前
MySql常用SQL命令
服务器·数据库·sql·mysql·http·oracle·udp
Atri厨6 小时前
宽字节注入详解
sql·宽字节注入
耶夫斯计6 小时前
【SQL_agent】基于LLM实现sql助理
数据库·python·sql·语言模型
hssfscv7 小时前
Javaweb学习笔记——JDBC和Mybatis
笔记·学习·mybatis
羊小猪~~7 小时前
数据库学习笔记(十八)--事务
数据库·笔记·后端·sql·学习·mysql