问题-01

Mybatis比较失效问题

1、问题复现

whetherPromoterNull是字符串类型,0使用单引号包裹,进行比较时发现不起作用

java 复制代码
    <if test="whetherPromoterNull != null and whetherPromoterNull.trim() == '0'"> and sui.share_user_id is not null</if>

2、原因

在MyBatis的条件判断中,使用单引号或双引号来括起字符串值都是可以的。但是在比较字符串类型的数字时,它们会产生不同的效果

  • 不加引号:比较数值时正常。若whetherPromoterNull是数值类型,比较数值时正常
  • 单引号:比较字符串时正常,比较数值时不正常。若whetherPromoterNull是数值类型,比较数值时不正常
  • 双引号:比较字符串时正常,比较数值时正常。若whetherPromoterNull是数值类型,比较数值时正常

3、解决方法

java 复制代码
//将数值类型通过toString方法变成字符串类型
<if test="whetherPromoterNull != null and whetherPromoterNull.trim() == '0'.toString()"> and sui.share_user_id is not null</if>

//使用双引号将数值类型变成字符串类型
<if test='whetherPromoterNull != null and whetherPromoterNull.trim() == "0"'> and sui.share_user_id is not null</if>

//不加引号
<if test="whetherPromoterNull != null and whetherPromoterNull.trim() == 0"> and sui.share_user_id is not null</if>
相关推荐
m0_7482487712 分钟前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
潇凝子潇25 分钟前
java基于ThreadLocal实现单例模式
java·开发语言·单例模式
gitax26 分钟前
连接github和ai的桥梁:GitIngest
java
数据小小爬虫33 分钟前
如何利用Java爬虫获得1688商品详情
java·开发语言·爬虫
NiNg_1_23437 分钟前
IntelliJ Idea常用快捷键详解
java·ide·intellij-idea
小学鸡!39 分钟前
IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具
java·git·intellij-idea
添砖,加瓦1 小时前
java—网络编程TCP和UDP
java
晚安~~1 小时前
考研互学互助系统|Java|SSM|VUE| 前后端分离
java·开发语言·tomcat·maven
咕德猫宁丶1 小时前
Spring Boot + MinIO 实现分段、断点续传,让文件传输更高效
java·spring boot·后端·中间件
阿新-1 小时前
解决Spring boot集成quartz时service注入失败为null的问题
java·spring boot·后端