浅谈mybatis中SQL语句给boolean类型赋值问题

 更新时间:2020年11月25日 08:34:33   作者:一只特立独行的猫猫  
这篇文章主要介绍了浅谈mybatis中SQL语句给boolean类型赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,大家还是直接看代码吧~

<select id="getBiTree" parameterType="String" resultMap="MenuVoListMap">
  SELECT m.menu_id , m.parent_id , m.`name` , 1 opens FROM menu m
  WHERE m.is_valid = 1 AND (m.type = 0 or m.type = 1) and m.menu_id IN (${menuId})
</select> 

其中 opens是boolean类型,在这里将他的值赋值为1,即为true

<result property="open" column="opens"/> 这里的opens和上面的opens对应

补充知识:mybatis中当查询条件有Boolean类型的时候,为false时查询无效

eg:

  <if test="isOk != null and isOk !=''">
   and is_ok = #{isOk}
  </if>

此时当isOk为false时,并未查询出is_ok对应的结果来

找原因:

直接到数据库使用脚本查询

select * from table

where is_ok = false

此时能查出is_ok为0的数据

select * from table where is_ok = true

此时能查出is_ok为1的数据

此时定位问题是否在

<if test="isOk != null and isOk !=''">

通过排查去掉and isOk!='',可以正确的查出

所以正确的查询结构是:

 <if test="isOk != null">
   and is_ok = #{isOk}
  </if>

经研究:

mybatis的if判断里面最好不要使用boolean值:

mybatis会默认把空值转为false。所以如果遇见前面传空值,这个字段在mybatis里面永远就是false了,可以使用数字类型代替,但是不要使用0作为参数。

以上这篇浅谈mybatis中SQL语句给boolean类型赋值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JAVA构造器是否为静态方法你知道吗

    JAVA构造器是否为静态方法你知道吗

    这篇文章主要为大家详细介绍了JAVA构造器是否为静态方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Java中使用COS实现文件上传功能

    Java中使用COS实现文件上传功能

    cos是O'Rrilly公司开发的一款用于HTTP上传文件的OpenSource组件。下面通过本文给大家分享使用COS实现文件上传功能,感兴趣的朋友一起看看吧
    2017-08-08
  • spring NamedContextFactory在Fegin配置及使用详解

    spring NamedContextFactory在Fegin配置及使用详解

    在我们日常项目中,使用FeignClient实现各系统接口调用变得更加简单, 在各个系统集成过程中,难免会遇到某些系统的Client需要特殊的配置、返回读取等需求。Feign使用NamedContextFactory来为每个Client模块构造单独的上下文(ApplicationContext)
    2023-11-11
  • Spring bean对象实例化实现过程图解

    Spring bean对象实例化实现过程图解

    这篇文章主要介绍了Spring bean对象实例化实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • java实现抖音飞机大作战

    java实现抖音飞机大作战

    这篇文章主要为大家详细介绍了java实现抖音飞机大作战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • 深入了解JAVA 虚引用

    深入了解JAVA 虚引用

    这篇文章主要介绍了JAVA 虚引用的相关资料,帮助大家更好的理解和学习JAVA,感兴趣的朋友可以了解下
    2020-08-08
  • Spring工作原理简单探索

    Spring工作原理简单探索

    这篇文章主要介绍了Spring工作原理简单探索,涉及Springaop与IOC,动态代理静态代理,反射等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java中url任意跳转漏洞的解决

    java中url任意跳转漏洞的解决

    URL任意跳转漏洞是一种安全漏洞,它发生在应用程序没有正确地验证目标URL,允许攻击者将用户重定向到恶意网站,本文就来介绍一下漏洞的解决修复方案,感兴趣的可以了解一下
    2024-06-06
  • Spring Cloud重试机制与各组件的重试总结

    Spring Cloud重试机制与各组件的重试总结

    这篇文章主要给大家介绍了关于Spring Cloud中重试机制与各组件的重试的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • MyBatis框架之mybatis逆向工程自动生成代码

    MyBatis框架之mybatis逆向工程自动生成代码

    Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。本文主要给大家介绍mybatis逆向工程自动生成代码,感兴趣的朋友一起学习吧
    2016-04-04

最新评论