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

相关推荐
emma羊羊2 小时前
【SQL注入】延时盲注
数据库·sql·网络安全
程序员小羊!3 小时前
大数据电商流量分析项目实战:Spark SQL 基础(四)
大数据·sql·spark
好名字更能让你们记住我5 小时前
MYSQL数据库初阶 之 MYSQL用户管理
linux·数据库·sql·mysql·adb·数据库开发·数据库架构
亭台烟雨中7 小时前
SQL优化简单思路
数据库·sql
在路上`7 小时前
前端学习之后端java小白(二)-sql约束/建表
java·sql·学习
F_D_Z18 小时前
【SQL】指定日期的产品价格
数据库·sql·mysql
麦聪聊数据19 小时前
如何使用 QuickAPI 快速连接 MySQL 数据库并发布 RESTful API
数据库·sql·mysql·restful·数据服务
数巨小码人1 天前
Oracle SQL调优技巧实战指南
数据库·sql·oracle
无名客01 天前
SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
java·数据库·sql·sql语句优化
咋吃都不胖lyh1 天前
SQL数据分析原代码--创建表与简单查询
java·数据库·sql