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

相关推荐
xbgRS6 小时前
spring整合mybaits
java·spring·mybatis
晚安code9 小时前
MySQL 开发规范清单:建表、索引、SQL、ORM 四块一次讲透
数据库·sql·mysql
weixin_7275356210 小时前
mysql高频八股问答200
sql·mysql
Yan_chen66611 小时前
CTFHub SQL 布尔盲注实战攻略
数据库·sql·实战·布尔盲注·ctfhub闯关
Csvn11 小时前
📊 SQL 入门 Day 16:数据插入技巧
后端·sql
vHelios13 小时前
【电商项目】商品服务模块的问题解决与代码逻辑思考
java·sql·mybatis
敲个大西瓜1 天前
Mybatis核心面试题
mybatis
砍材农夫1 天前
物联网实战|Spring Boot MQTT平台 |emqx broker实战
spring boot·spring·spring cloud·mybatis
Crazy________1 天前
Redis02:库切换、监控与安全配置
linux·redis·云原生·mybatis
让头发掉下来1 天前
Flink SQL 中两个频繁变化 Topic 的 Join 行为分析
大数据·数据库·sql·flink