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

 更新时间:2022年03月14日 10:04:46   作者:bozi_list  
这篇文章主要介绍了mybatis参数String与Integer类型的判断方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

String与Integer类型的判断

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

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

之前只知道如果是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>

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

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

相关文章

  • Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)

    Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)

    下面小编就为大家带来一篇Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java定时任务ScheduledThreadPoolExecutor示例详解

    Java定时任务ScheduledThreadPoolExecutor示例详解

    这篇文章主要介绍了Java定时任务ScheduledThreadPoolExecutor示例详解,这里使用scheduleAtFixedRate方法安排一个任务,该任务是一个 Runnable 匿名类,其run方法中调用了new LoginViewTimeTask().loginStatisticsHandle()方法,需要的朋友可以参考下
    2023-11-11
  • 浅谈一下SpringBoot中的异步任务

    浅谈一下SpringBoot中的异步任务

    这篇文章主要介绍了浅谈一下SpringBoot中的异步任务,SpringBoot 中的异步任务主要是指在 SpringBoot 中使用异步线程完成处理任务,在 SpringBoot 中使用异步线程非常简单,只需要两个注解就可以搞定,需要的朋友可以参考下
    2023-10-10
  • mybatis中的setting配置详解

    mybatis中的setting配置详解

    这篇文章主要给大家介绍了关于mybatis中setting配置的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Java线程中的Timer和TimerTask原理详解

    Java线程中的Timer和TimerTask原理详解

    这篇文章主要介绍了Java线程中的Timer和TimerTask原理详解,Timer和TimerTask成对出现,Timer是定时器,TimerTask是定时任务,换句话说,定时任务TimerTask是给定时器Timer执行的具体任务,需要的朋友可以参考下
    2023-10-10
  • 学习非阻塞的同步机制CAS

    学习非阻塞的同步机制CAS

    现代的处理器都包含对并发的支持,其中最通用的方法就是比较并交换(compare and swap),简称CAS。下面我们来一起学习一下吧
    2019-05-05
  • SpringBoot Maven Clean报错解决方案

    SpringBoot Maven Clean报错解决方案

    这篇文章主要介绍了SpringBoot Maven Clean报错解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java中的HashSet集合解析

    Java中的HashSet集合解析

    这篇文章主要介绍了Java中的HashSet集合解析,HashSet 实现 Set 接口,内部维护一个 HashMap 实例,它不能保证集合迭代的顺序,也不能保证顺序不变,HashSet 允许 null 元素,需要的朋友可以参考下
    2023-11-11
  • 剑指Offer之Java算法习题精讲链表专项训练

    剑指Offer之Java算法习题精讲链表专项训练

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
    2022-03-03
  • 使用java NIO及高速缓冲区写入文件过程解析

    使用java NIO及高速缓冲区写入文件过程解析

    这篇文章主要介绍了使用java NIO及高速缓冲区写入文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论