服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - mybatis参数String与Integer类型的判断方式

mybatis参数String与Integer类型的判断方式

2022-09-19 17:16bozi_list Java教程

这篇文章主要介绍了mybatis参数String与Integer类型的判断方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

String与Integer类型的判断

mybatis写update时,正常是set了值才会进行update操作

我们一般是这样写

?
1
2
3
<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(),否则会报错。 

使用<if>标签判断Integer类型的坑

之前只知道如果是Integer类型,判断是否传参的时候判空就好,因为0会被认为和空字符''相等。

没想到还有另外的问题

?
1
2
<if test="req.type != null and req.type = 1">
</if>

注意上面的第二个条件使用的单个等号

此时不管你req.type传啥值(0啊,null啊,负数啊),甚至是不传这个属性,都会符合条件

?
1
2
<if test="req.type != null and req.type == 1">              
</if>

然后我改成==之后,一切恢复正常。

mybatis参数String与Integer类型的判断方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/u011136197/article/details/78909868

延伸 · 阅读

精彩推荐