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

相关推荐
5pace21 小时前
【SSM|第一篇】MyBatisPlus
java·spring boot·后端·mybatis
碰大点1 天前
数据库“Driver not loaded“错误,单例模式重构方案
数据库·sql·qt·单例模式·重构
杰杰7981 天前
SQL 实战:用户访问 → 下单 → 支付全流程转化率分析
数据库·sql
百***87441 天前
【MySQL】SQL菜鸟教程(一)
sql·mysql·oracle
Fantasydg2 天前
MyBatis学习
java·学习·mybatis
百***37482 天前
【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
xml·spring·mybatis
学习中的程序媛~2 天前
Spring 事务(@Transactional)与异步(@Async / CompletableFuture)结合的陷阱与最佳实践
java·数据库·sql
老葱头蒸鸡2 天前
(4)Kafka消费者分区策略、Rebalance、Offset存储机制
sql·kafka·linq
员大头硬花生2 天前
九、InnoDB引擎-MVCC
数据库·sql·mysql