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

相关推荐
zhuiQiuMX17 分钟前
脉脉maimai面试死亡日记
数据仓库·sql·面试
GEEK零零七6 小时前
Leetcode 1070. 产品销售分析 III
sql·算法·leetcode
椰椰椰耶7 小时前
【MyBatis】XML实现,配置方法和增、删、改、查
xml·oracle·mybatis
御控工业物联网8 小时前
御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换
数据库·sql·http
GJCTYU9 小时前
spring中@Transactional注解和事务的实战理解附代码
数据库·spring boot·后端·spring·oracle·mybatis
Code季风10 小时前
SQL关键字快速入门:CASE 实现条件逻辑
javascript·数据库·sql
kk在加油11 小时前
Mysql锁机制与优化实践以及MVCC底层原理剖析
数据库·sql·mysql
满昕欢喜20 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
DuelCode21 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
旷世奇才李先生1 天前
XML Schema 安装使用教程
xml