广告
返回顶部
首页 > 资讯 > 精选 >mybatis的integer类型为0的失效问题怎么解决
  • 109
分享到

mybatis的integer类型为0的失效问题怎么解决

2023-06-26 05:06:56 109人浏览 安东尼
摘要

本篇内容介绍了“mybatis的integer类型为0的失效问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!integer类型为0

本篇内容介绍了“mybatis的integer类型为0的失效问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

integer类型为0的数据if test失效

mybatis的where动态判断语句if test 遇到tinyint类型为0的数据失效

发现一个mybatis的坑,有个支付表,通过状态去筛选已支付/未支付的数据,支付状态用status字段表示,status=0表示未支付,status=1表示已支付,且status类型为Integer。当选择已支付即status=1时,可以筛选成功已支付的数据列表,但是当选择未支付即status=0时,查出来的数据是未支付和已支付的所有数据。

此时就有点懵逼了,后面debug一层层去追踪,发现status=0时,mybatis构建的sql中where条件没有把status字段拼接上去,但是status=1时,sql中可以看到where中有status字段。 

经过后面找资料发现,integer类型的字段,在mybatis中的if test 条件中,会把值为0的当成false处理,因为会将integer=0的参数默认为‘’(空串),即status=0的判断结果为false,所以未支付的条件永远不可能出现,查出来的数据就是所有状态的数据。

以下图为出错时的语句:

<where>            <trim prefixOverrides="and">                <if test="status != null and status !=''">and status=#{status}</if>                <if test="createdDtBegin != null">and created_dt <![CDATA[ >= ]]>                    #{createdDtBegin, jdbcType=TIMESTAMP}                </if>                <if test="createdDtEnd != null">and created_dt <![CDATA[ <= ]]>                    #{createdDtEnd, jdbcType=TIMESTAMP}                </if>            </trim></where>

解决方式

改成 **<if test=“status != null”>and status=#{status, jdbcType=TINYINT}</if>

这样即可,即把 status != ''去掉

mybatis的integer类型为0的失效问题怎么解决

或者还有一种做法,即:

如果status为integer,<if test=“status != null and status != -1”>或者:如果status为integer,<if test=“status != null and status != &lsquo;&rsquo; or status == 0”>

mybatis if 判断 Integer 类型的坑

当POJO中的属性类型为 Integer 时,传入 0,此时在 xxxMapper.xml的 if 判断中总是不能满足条件,进而导致查询条件无效,这是因为 mybatis 针对 integer 类型的 0 进行了特殊处理,当成了 &lsquo;&rsquo; 来处理,进行如下判断即可:

payStatus 为 Integer 类型

<if test="payStatus != null and payStatus != '' or payStatus == 0">    and a.pay_status = #{payStatus}</if>

“mybatis的integer类型为0的失效问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: mybatis的integer类型为0的失效问题怎么解决

本文链接: https://www.lsjlt.com/news/307060.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis的integer类型为0的失效问题怎么解决
    本篇内容介绍了“mybatis的integer类型为0的失效问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!integer类型为0...
    99+
    2023-06-26
  • mybatis的坑-integer类型为0的数据if test失效问题
    integer类型为0的数据if test失效 mybatis的where动态判断语句if test 遇到tinyint类型为0的数据失效 发现一个mybatis的坑,有个...
    99+
    2022-11-12
  • mybatis使用Integer类型查询出现的问题怎么解决
    本文小编为大家详细介绍“mybatis使用Integer类型查询出现的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis使用Integer类型查询出现的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-06-29
  • 使用Mybatis遇到的坑之Integer类型参数问题怎么解决
    这篇文章主要讲解了“使用Mybatis遇到的坑之Integer类型参数问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用Mybatis遇到的坑之Integer类型参数问题怎么解决...
    99+
    2023-07-05
  • 解决Mybatis的@Param()注解导致分页失效的问题
    @Param注解导致分页失效—分页拦截器 问题描述 在使用mybatis分页时,使用@Param注解传入了两个对象,分页失效,查询出的总是全部的数据。出现问题时,分页策略为:分页拦截...
    99+
    2022-11-12
  • Java中Integer使用的问题怎么解决
    这篇“Java中Integer使用的问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中Integer使用的...
    99+
    2023-07-04
  • 怎么解决css中overflow:hidden失效的问题
    这篇文章给大家分享的是有关怎么解决css中overflow:hidden失效的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。失效原因今天在写轮播图的时候发现,overflow;hidden;竟然能失效,发现原...
    99+
    2023-06-08
  • 怎么解决mybatis映射和实际类型不一致的问题
    本篇内容主要讲解“怎么解决mybatis映射和实际类型不一致的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决mybatis映射和实际类型不一致的问题”吧!mybatis映射和实际类型...
    99+
    2023-06-21
  • 如何解决IE6下伪类hover失效的问题
    如何解决IE6下伪类hover失效的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一篇:在处理CSS的机制上,拿对伪类:hover的...
    99+
    2022-10-19
  • 如何解决MyBatis在DAO层定义接口返回类型泛型无效的问题
    这篇文章主要讲解了“如何解决MyBatis在DAO层定义接口返回类型泛型无效的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决MyBatis在DAO层定义接口返回类型泛型无效的问题...
    99+
    2023-06-20
  • 关于泛型擦除问题的解决--Mybatis查询类型转换
    目录概念介绍问题案例原因分析解决方案总结概念介绍 Java语言的泛型采用的是擦除法实现的伪泛型,泛型信息(类型变量、参数化类型)编译之后通通被除掉了。使用擦除法的好处就是实现简单、非...
    99+
    2022-11-13
  • Vue读取HTMLCollection列表的length为0问题怎么解决
    这篇“Vue读取HTMLCollection列表的length为0问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-06-30
  • 怎么解决CSS3中transition-delay属性默认值0不带单位失效的问题
    这篇文章给大家分享的是有关怎么解决CSS3中transition-delay属性默认值0不带单位失效的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。CSS3 里面的 transition-delay 用了0默...
    99+
    2023-06-08
  • 怎么解决Spring AOP拦截抽象类父类中方法失效问题
    这篇文章主要介绍怎么解决Spring AOP拦截抽象类父类中方法失效问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景最近工作中需要对组内各个系统依赖的第三方接口进行监控报警,对于下游出现问题的接口能够...
    99+
    2023-06-21
  • Mybatis的sql注释问题怎么解决
    这篇文章主要介绍“Mybatis的sql注释问题怎么解决”,在日常操作中,相信很多人在Mybatis的sql注释问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis的sql注释问题怎么解决...
    99+
    2023-07-02
  • MyBatis的SUM映射问题怎么解决
    本文小编为大家详细介绍“MyBatis的SUM映射问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“MyBatis的SUM映射问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。SUM映射问题当我...
    99+
    2023-06-29
  • ubuntu怎么解决libsqlite3-0依赖的问题
    这篇文章给大家分享的是有关ubuntu怎么解决libsqlite3-0依赖的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。fan@fan:sqlite$ sudo apt-get install sqlite...
    99+
    2023-06-09
  • numpy强制类型转换的问题怎么解决
    本篇内容主要讲解“numpy强制类型转换的问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy强制类型转换的问题怎么解决”吧!numpy强制类型转换今天用numpy遇到一个关于类...
    99+
    2023-06-30
  • mybatis中返回主键一直为1的问题怎么解决
    今天小编给大家分享一下mybatis中返回主键一直为1的问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。mybat...
    99+
    2023-07-05
  • SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法
    目录1 配置多数据源时,application.yml 的有关mybatis的配置是失效的,因为他不知道配置哪一个数据源2 application.yml 配置文件3 解决方法一4 ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作