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

相关推荐
颜如玉1 小时前
动态拼接SQL实践备忘📝
java·sql·mybatis
百***97642 小时前
LangChain-08 Query SQL DB 通过GPT自动查询SQL
数据库·sql·langchain
q***21602 小时前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
阿里云大数据AI技术3 小时前
【跨国数仓迁移最佳实践 12】阿里云 MaxCompute 实现 BigQuery 10 万条 SQL 智能转写迁移
大数据·sql
galaxyffang7 小时前
skywalking整合logback.xml日志,日志文件出现乱码问题解决
xml·logback·skywalking
朝新_10 小时前
【实战】博客系统:项目公共模块 + 博客列表的实现
数据库·笔记·sql·mybatis·交互·javaee
鹏说大数据12 小时前
Cursor 生成 SQL 设计执行流程图
人工智能·sql
小小哭包12 小时前
Spring Boot整合多个MyBatis数据源实战教程
spring boot·后端·mybatis
b***9101 天前
【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus
android·前端·后端·mybatis
小杍随笔1 天前
【基于 Spring Boot 3 + Spring Security + MyBatis-Plus 构建的用户登录功能】
spring boot·spring·mybatis