时间:2023-01-26 09:46:05 | 栏目:JAVA代码 | 点击:次
mybatis写update时,正常是set了值才会进行update操作
<if test="sampleBatchNo != null and sampleBatchNo != ''"> SAMPLE_BATCH_NO =#{sampleBatchNo,jdbcType=VARCHAR}, </if>
1、 String类型是符合的,但是如果是Integer类型的话,mybatis会将i==0的值也认定为空字符串。
所以如果是Integer类型只需要判断!= null即可
2、如果String类型需要判断不等于0,则需要写sampleBatchNo != '0'.toString(),否则会报错。
之前只知道如果是Integer类型,判断是否传参的时候判空就好,因为0会被认为和空字符''相等。
<if test="req.type != null and req.type = 1"> </if>
此时不管你req.type传啥值(0啊,null啊,负数啊),甚至是不传这个属性,都会符合条件
<if test="req.type != null and req.type == 1"> </if>
然后我改成==之后,一切恢复正常。