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

相关推荐
香气袭人知骤暖10 小时前
SQL慢查询常见优化步骤
android·数据库·sql
Star Learning Python10 小时前
MySQL日期时间的处理函数
数据库·sql
子沫202010 小时前
使用mybatis-plus、mybatis插入数据库时加密,查询数据库时解密,自定义TypeHandler 加解密使用
数据库·mybatis·mybatis-plus
w***765513 小时前
存储技术全景:从基础原理到未来趋势
spring boot·后端·mybatis
醇氧13 小时前
SqlLogInterceptor mybatis配置打印SQL
java·sql·mybatis
iSee85714 小时前
struts2 XML外部实体注入漏洞复现(CVE-2025-68493)
xml·安全·struts2
清风拂山岗 明月照大江14 小时前
MySQL进阶
数据库·sql·mysql
知识分享小能手15 小时前
Oracle 19c入门学习教程,从入门到精通,SQL*Plus命令详解:语法、使用方法与综合案例 -知识点详解(4)
sql·学习·oracle
符哥200816 小时前
Mybatis和Mybatis-plus区别
java·开发语言·mybatis
二哈喇子!16 小时前
基于SSM框架的网上商城购物系统的设计与实现(开源项目——实现CRUD功能整体流程超详细)
java·spring·mybatis·ssm