mybatis if 标签 判断两个值是否相等的问题

本文介绍了在MyBatis中使用`if`标签进行条件判断时,如何处理基础数据类型和字符串类型的值。当比较的基础数据类型或特定字符串时,需注意使用'=',而当比较的是字符类型时,应使用'=='。内容强调了在不同场景下选择正确比较操作符的重要性,以避免出现意料之外的行为。
摘要由CSDN通过智能技术生成

用“==”比较的使用场景:

不管你用的什么类型的变量,只要变量的值是字符类型就用“==”

产生原因:

在mybatis中如果<if>标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)

示例如下:

参数:String queryKwd = "a";

<select id="getFactoryInfoList" resultMap="BaseResultMap" >
   select * from PM_FACTORY_INFO
   where DEL_FLAG='0'
       <if test="queryKwd == 'a'"><!--正确写法-->
           and 1=1
       </if>
       <if test="queryKwd = 'a'"><!--错误写法: 字符类型不能用一个“=”判断是否相等,会报错:Caused by: java.lang.NumberFormatException: For input string: "a" -->
           and 2=2
       </if>
</select>
<-java 框架平台 www.1b23.com ->

2、使用“=”比较 基本数据类型 的值

用“=”比较的使用场景:

1、不管你

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值