mybatis中的if test判断入参的值问题

 更新时间:2022年06月06日 11:47:53   作者:四块五  
这篇文章主要介绍了mybatis中的if test判断入参的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis if test判断入参的值

1.第一种判断方式

<if test=' requisition != null and requisition == "Y" '>
   AND 表字段 = #{requisition}
</if>

2.第二种判断方式

<if test=" requisition != null and requisition == 'Y'.toString() ">
  AND 表字段 = #{requisition}
</if>

if test动态判断数字时出现的错误

mybatis中if test判断数字

在实现搜索功能时碰到的错误,很多时候我们会在数据库中使用一个字段来作为状态保存,如:0=男,1=女;0=禁止,1=启用等。

无论我选择停用、还是启用,都将整个表格的数据显示出来,没有起到筛选的作用。

通过排除,找到了导致问题的代码:

    <select id="queryAllByLimit" resultMap="SystemMenuMap">
        select
          id, pid, title, icon, href, sort, status
        from system_menu
        <where>
            <if test="systemMenu.status != null and systemMenu.status != '' ">
                and status = #{systemMenu.status}
            </if>
        </where>
    </select>

改为:

    <select id="queryAllByLimit" resultMap="SystemMenuMap">
        select
          id, pid, title, icon, href, sort, status
        from system_menu
        <where>
            <if test="systemMenu.status != null">
                and status = #{systemMenu.status}
            </if>
        </where>
    </select>

原因:

<if test="systemMenu.status != null and systemMenu.status != '' ">

只对判断String类型的字符串时起作用,由于status是Integer类型,判断条件不成立,没起到作用。如:当传入的值是1时,’1’会被解析成字符。

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

相关文章

  • spring如何动态指定具体实现类

    spring如何动态指定具体实现类

    这篇文章主要为大家详细介绍了spring如何动态指定具体实现类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Java的Hibernate框架中Criteria查询使用的实例讲解

    Java的Hibernate框架中Criteria查询使用的实例讲解

    这篇文章主要介绍了Java的Hibernate框架中Criteria查询使用的实例讲解,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2016-01-01
  • 详解openfeign集成spring cloud loadbalancer实现负载均衡流程

    详解openfeign集成spring cloud loadbalancer实现负载均衡流程

    这篇文章主要介绍了openfeign集成spring cloud loadbalancer实现负载均衡流程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Springboot整合ActiveMQ实现消息队列的过程浅析

    Springboot整合ActiveMQ实现消息队列的过程浅析

    昨天仔细研究了activeMQ消息队列,也遇到了些坑,下面这篇文章主要给大家介绍了关于SpringBoot整合ActiveMQ的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 浅谈Java中的克隆close()和赋值引用的区别

    浅谈Java中的克隆close()和赋值引用的区别

    下面小编就为大家带来一篇浅谈Java中的克隆close()和赋值引用的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 通过Class类获取对象(实例讲解)

    通过Class类获取对象(实例讲解)

    下面小编就为大家带来一篇通过Class类获取对象(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • java使用ArrayList实现斗地主(无序版)

    java使用ArrayList实现斗地主(无序版)

    这篇文章主要为大家详细介绍了java使用ArrayList实现斗地主,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • Java 锁粗化与循环问题

    Java 锁粗化与循环问题

    这篇文章主要介绍了Java 锁粗化与循环的相关知识,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • java线程池使用及原理面试题

    java线程池使用及原理面试题

    很多面试官喜欢把线程池作为问题的起点,然后延伸到其它内容,由于我们专栏已经说过队列、线程、锁面试题了,所以本章面试题还是以线程池为主
    2022-03-03
  • 图解Java经典算法冒泡选择插入希尔排序的原理与实现

    图解Java经典算法冒泡选择插入希尔排序的原理与实现

    冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序
    2022-09-09

最新评论