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

相关推荐
q***577411 分钟前
pg_sql关于时间的函数
数据库·sql
java1234_小锋1 小时前
简述Mybatis的插件运行原理?
java·开发语言·mybatis
初听于你2 小时前
SQL常用语句解析:从查询到操作
数据库·sql
q***2513 小时前
Spring Boot 中使用 @Transactional 注解配置事务管理
数据库·spring boot·sql
z***677710 小时前
SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
spring boot·tomcat·mybatis
b***676412 小时前
Springboot3 Mybatis-plus 3.5.9
数据库·oracle·mybatis
杨云龙UP18 小时前
【MySQL逻辑备份】基于mysqldump的MySQL 8.0全量逻辑备份脚本
linux·运维·数据库·sql·mysql·mssql
k***19519 小时前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
ptc学习者20 小时前
oracle 列的直方图
数据库·sql·mysql
驾数者20 小时前
DDL实战指南:如何定义和管理动态表
大数据·sql·flink