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

相关推荐
nuowenyadelunwen44 分钟前
Harvard CS50 week 7 Problem Sets Solutions
数据库·sql·harvard cs50·cs50 week7
驾数者1 小时前
Flink SQL格式集成:JSON、Avro、Protobuf序列化详解
sql·flink·json
Gauss松鼠会1 小时前
【GaussDB】跨用户调用已授权的存储过程,可能会在存储过程内SQL的自定义函数表达式里报错没有权限
数据库·sql·database·gaussdb
林shir1 小时前
3.6-Web后端基础(java操作数据库)
spring·mybatis
laocooon52385788610 小时前
mysql,100个题目。
数据库·sql·mysql
cg501714 小时前
力扣数据库——组合两个表
sql·算法·leetcode
super_lzb15 小时前
mybatis拦截器ParameterHandler详解
java·数据库·spring boot·spring·mybatis
memgLIFE18 小时前
SQL 优化方法详解(1)
java·数据库·sql
保定公民20 小时前
DMDRS数据库同步用户最小权限脚本示例
数据库·sql·达梦数据库·数据同步·dmdrs·同步权限
自燃人~21 小时前
怎么优化慢SQL
数据库·sql