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

相关推荐
hopsky7 小时前
ShardingSphere功能简介
数据库·sql
武昌库里写JAVA7 小时前
iview-CRUD模板
vue.js·spring boot·sql·layui·课程设计
侠客行03179 小时前
Mybatis入门到精通 一
java·mybatis·源码阅读
男孩李11 小时前
linux下如何执行postgres数据库的sql文件
数据库·sql·postgresql
zwjapple12 小时前
MySQL SQL 面试核心考点与注意事项总结
数据库·sql·mysql
05大叔12 小时前
Spring Day02
数据库·sql·spring
赵得C13 小时前
完整 Oracle 12c 分页 Demo(Spring Boot+MyBatis+PageHelper)
spring boot·oracle·mybatis
小韩博15 小时前
小迪笔记45课之-PHP应用&SQL二次注入&堆叠执行&DNS带外&功能点&黑白盒条件
笔记·sql·网络安全·php
默默前行的虫虫16 小时前
nicegui网页多用户数据隔离总结
数据库·sql
任子菲阳17 小时前
学Javaweb第四天——springboot入门
java·spring·mybatis