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

相关推荐
lifejump2 小时前
Pikachu | SQL-inject
数据库·sql
ss2734 小时前
ruoyi 新增每页分页条数
java·数据库·mybatis
lkbhua莱克瓦244 小时前
进阶-SQL优化
java·数据库·sql·mysql·oracle
石小千4 小时前
Myql binlog反向解析成sql
数据库·sql
摩西蒙6 小时前
阿里云 MaxCompute(原 ODPS)定时任务查询库存快照场景
java·大数据·sql·database
鲨莎分不晴6 小时前
给 Hadoop 插上 SQL 的翅膀:Apache Hive 架构与实战全解
hadoop·sql·apache
x***44016 小时前
Spring-boot3.4最新版整合swagger和Mybatis-plus
mybatis
web守墓人7 小时前
【前端】ikun-pptx编辑器前瞻问题五:pptx中的xml命名空间
xml·前端
h7ml7 小时前
企业微信回调模式解析:从XML到POJO的自定义JAXB编解码器设计
xml·java·企业微信
Full Stack Developme7 小时前
达梦(DM8)对 JSON 与 XML 的使用教程
xml·数据库·json