Bootstrap

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

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

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

产生原因:

在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、不管你

;