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

相关推荐
饕餮争锋2 小时前
SQL条件中WHERE 1=1 的功能
数据库·sql
编织幻境的妖3 小时前
SQL查询连续登录用户方法详解
java·数据库·sql
零度@4 小时前
SQL 调优全解:从 20 秒到 200 ms 的 6 步实战笔记(附脚本)
数据库·笔记·sql
weixin_448119945 小时前
Datawhale Hello-Agents入门篇202512第1次作业
数据库·sql·mysql
北极糊的狐7 小时前
若依系统报错net::ERR_CONNECTION_TIMED_OUT的原因
java·windows·sql·mybatis
五阿哥永琪8 小时前
MySQL 慢查询定位与 SQL 性能优化实战指南
sql·mysql·性能优化
C++业余爱好者9 小时前
SQL语言家族入门指南:标准SQL、T-SQL与PL/SQL详解
数据库·sql
白衣衬衫 两袖清风9 小时前
ABP框架+Dapper执行原生sql
sql·c#·.net
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ9 小时前
日志打印配置:logback-spring.xml配置;info和error完全区分了,并且按时间拆分了
xml·spring·logback