返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis中if-test数字判断的坑及解决
  • 420
分享到

mybatis中if-test数字判断的坑及解决

2024-04-02 19:04:59 420人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录if-test数字判断的坑mybatis的test判断注意事项if-test数字判断的坑 在项目中偶然发现一个判断数字的if没有起任何作用,代码如下 <if test="t

if-test数字判断的坑

项目中偶然发现一个判断数字的if没有起任何作用,代码如下

<if test="timeType !=null and timeType!='' and timeType == '3'">
    AND
    ...
</if>

经过查询资料发现,mybatis是用OGNL表达式来解析的,在OGNL的表达式中,数字’3’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。

所以应该改为:

 <if test="timeType !=null and timeType!='' and timeType == '3'.toString() ">
            AND
            ...
 </if>

然后发现确实解决了这个问题,特此记录。

mybatis的test判断注意事项

在使用mybatis进行判断的时候,一定要注意传入的数据类型与判断的目标值类型是否一致。

最近在一次开发过程,误将一个传入的整型数据使用了下面的判断方式:

<if test="appType != null and appType != ''">
    and a.c_appType = #{appType}
</if>

其中,appType是一个整型数据。可以看到,在test判断里面使用了 appType != ''。

在进行业务功能测试的时候发现,当传入的值是0时,该条件筛选没有起作用,通过调试发现,mybatis会将空字符串转换成double类型的0.0,如下图所示:

同样的,整数数据也会转换为double类型,如下图所示:

所以,mybatis在判断的时候,数字0和空字符串是相等的,而我们的if判断里,是两者不相等时该条件才会起作用。

因此,在使用mybatis判断的时候,一定要注意类型是否一致,数字类型就不要判断空字符串的情况了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis中if-test数字判断的坑及解决

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

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

猜你喜欢
  • mybatis中if-test数字判断的坑及解决
    目录if-test数字判断的坑mybatis的test判断注意事项if-test数字判断的坑 在项目中偶然发现一个判断数字的if没有起任何作用,代码如下 <if test="t...
    99+
    2024-04-02
  • mybatis if test判断BigDecimal遇到的坑及解决方法是什么
    这篇“mybatis if test判断BigDecimal遇到的坑及解决方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获...
    99+
    2023-07-05
  • mybatis中的if test判断入参值问题怎么解决
    本文小编为大家详细介绍“mybatis中的if test判断入参值问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis中的if test判断入参值问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-30
  • mybatis if test非空判断数字0为什么是false
    1、去掉空字符串判断         <if test="version != null"...
    99+
    2024-04-02
  • mybatis中的if test判断入参的值问题
    目录mybatis if test判断入参的值1.第一种判断方式2.第二种判断方式if test动态判断数字时出现的错误mybatis中if test判断数字mybatis if t...
    99+
    2024-04-02
  • Mybatis的mapper.xml中if标签test判断怎么使用
    本文小编为大家详细介绍“Mybatis的mapper.xml中if标签test判断怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis的mapper.xml中if标签test判断怎么使用”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-07-01
  • MyBatis if test 判断字符串相等不生效问题
    目录MyBatis if test 判断字符串相等不生效原因分析解决方法MyBatis if test 判断字符串相等的坑 1. if 判断字符串2. if嵌套M...
    99+
    2022-11-13
    MyBatis if test 判断字符串相等 判断字符串不生效
  • mybatis if test条件判断语句中的判断问题实例分析
    本文小编为大家详细介绍“mybatis if test条件判断语句中的判断问题实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis if test条件判断语句中的判断问题实例分析”文...
    99+
    2023-06-29
  • Mybatis的mapper.xml中if标签test判断的用法说明
    目录mapper.xml中if标签test判断的用法1. 字符串等于条件的两种写法2. 非空条件的判断3. 判断数组是否包含某个元素mapper.xml <if test>...
    99+
    2024-04-02
  • mybatis的test坑怎么解决
    今天小编给大家分享一下mybatis的test坑怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。概述mybatis使用...
    99+
    2023-07-05
  • mybatis的xml中if判断的test条件为字符串中包含另一个字符串
    mybatis的xml中if判断的test条件为字符串中包含另一个字符串 find_in_set(#{item.valu...
    99+
    2023-09-15
    mybatis java xml mysql spring
  • 如何解决mybatis的if判断integer问题
    这篇文章主要为大家展示了“如何解决mybatis的if判断integer问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决mybatis的if判断integer问题”这篇文章吧。if判断...
    99+
    2023-06-29
  • mybatis中的多重if 条件判断
    目录mybatis 多重if 条件判断要注意的是mybatis常用判断语法(标签)if判断choose判断mybatis 多重if 条件判断 要注意的是 当指定某种情况的时候,条件...
    99+
    2024-04-02
  • Mysql中关于0值判断的坑及解决
    目录mysql关于0值判断的坑简练问题如下原因解决方式问题引申Mysql判断数值0误区总结Mysql关于0值判断的坑 最近遇到一个Mysql返回多值的问题,最后发现是mysql过滤条件中0值判断的问题。 简练问题如下 有...
    99+
    2024-04-02
  • mybatis的坑-integer类型为0的数据if test失效问题
    integer类型为0的数据if test失效 mybatis的where动态判断语句if test 遇到tinyint类型为0的数据失效 发现一个mybatis的坑,有个...
    99+
    2024-04-02
  • mybatis动态SQL if的test写法及规则详解
    目录mybatis动态SQLif的test写法使用动态SQL最常见情景官方语法规则手册举个例子mybatisiftest动态sql语句mybatis动态SQL if的test写法 使...
    99+
    2024-04-02
  • Mybatis中<if>和<choose>的区别及“=”判断方式
    目录<if>和<choose>的区别及“=”判断正确很好的写法需要引入<choose>标签<!--错误的写法--&g...
    99+
    2024-04-02
  • mybatis中的多重if条件判断怎么用
    这篇“mybatis中的多重if条件判断怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatis中的多重if条件判...
    99+
    2023-06-29
  • js正则test匹配的踩坑及解决
    目录引言这样去匹配,有什么问题吗?为什么是 true 、false 、true 怎么解决呢?引言 本瓜相信你一定经常用以下这种最最简单的正则来判断字符串中是否存在某个子字符(别说了,...
    99+
    2024-04-02
  • mybatis if test不为空字符串且不为null的问题怎么解决
    这篇文章主要介绍“mybatis if test不为空字符串且不为null的问题怎么解决”,在日常操作中,相信很多人在mybatis if test不为空字符串且不为null的问题怎么解决问题上存在疑...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作