mybatis的if判断integer问题

目录
  • if判断integer的问题
  • if判断integer类型注意点

if判断integer的问题

昨天在使用mybatis的if判断integer时遇见一个小问题:

<if test="isChoose != null and isChoose != '' and isChoose == 0">
    
</if>

我发现前段同事调用接口的时候传参总是无法进入条件,

原来mybatis的if将0认为是'',所以这样判断是无法进入条件的,将数字换为1,2之类的就可以了;

if判断integer类型注意点

今天在写mapper文件时遇到integer类型参数时判断不为空,如下

<if test="status != null and status != ''">
    SQL。。。
</if>

当status=0时,if语句没有执行。

究其原因,原来mybatis默认将integer=0的参数等于‘’空串。

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

(0)

相关推荐

  • Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案

    我们都知道mybatis在进行参数判断的时候,直接可以用<if test=""></if> 就可以了,如下: 1.常规代码 <update id="update" parameterType="com.cq2022.zago.order.entity.Test" > update t_test_l <set > <if test="trnsctWayId != null"

  • mybatis判断int是否为空的时候,需要注意的3点

    mybatis判断int是否为空的注意点 1.int为空时会自动赋值0,所以必须用integer作为javaBean的属性值类型. 2.必须注意封装的get.set.也是Integer.不然也会报错. 3.注意好以上两个点,直接用null判断 例子: public class ExcelPutVo { private Integer startTime;// 开始时间 private Integer endTime;// 截止时间 private int sentId;// 下达者id priv

  • mybatis的坑-integer类型为0的数据if test失效问题

    integer类型为0的数据if test失效 mybatis的where动态判断语句if test 遇到tinyint类型为0的数据失效 发现一个mybatis的坑,有个支付表,通过状态去筛选已支付/未支付的数据,支付状态用status字段表示,status=0表示未支付,status=1表示已支付,且status类型为Integer.当选择已支付即status=1时,可以筛选成功已支付的数据列表,但是当选择未支付即status=0时,查出来的数据是未支付和已支付的所有数据. 此时就有点懵逼了

  • 在mybatis中使用mapper进行if条件判断

    目的: 在使用mybatis框架中mapper文件有自动生成,但有时需要自己添加sql语句进行开发,当遇到需要使用 if进行条件判断的时候该怎么写? 查询sql语句如下: <select id="queryData" parameterType="com.pojo.QueryDetailReq" resultType="com.pojo.MxDataInfo"> select * from db_trd.tb_trd_secu_ord

  • mybatis的if判断integer问题

    目录 if判断integer的问题 if判断integer类型注意点 if判断integer的问题 昨天在使用mybatis的if判断integer时遇见一个小问题: <if test="isChoose != null and isChoose != '' and isChoose == 0">      </if> 我发现前段同事调用接口的时候传参总是无法进入条件, 原来mybatis的if将0认为是'',所以这样判断是无法进入条件的,将数字换为1,2之类的

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

    目录 String与Integer类型的判断 我们一般是这样写 使用<if>标签判断Integer类型的坑 没想到还有另外的问题 注意上面的第二个条件使用的单个等号 String与Integer类型的判断 mybatis写update时,正常是set了值才会进行update操作 我们一般是这样写 <if test="sampleBatchNo != null and sampleBatchNo != ''"> SAMPLE_BATCH_NO =#{sampleB

  • mybatis if标签判断不生效的解决方法

    实际需求 <if test="computationRule == '1'"> FROM app_sz_bbb a </if> <if test="computationRule == '2'"> FROM app_ccc a </if> 这种情况不生效, 原因:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'0'会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if

  • mybatis的if判断不要使用boolean值的说明

    mybatis的if判断里面最好不要使用boolean值: mybatis会默认把空值转为false.所以如果遇见前段传空值,这个字段在mybatis里面永远就是false了, 可以使用数字类型代替,但是不要使用0作为参数: 补充知识:[MyBatis]<if test=""></if>标签的条件判断(Boolean类型参数) 在MyBatis 中,动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似. 在 MyBatis 3 之前的版本中,有很

  • Java 如何判断Integer类型的值是否相等

    目录 判断Integer类型的值是否相等 Integer赋值比较 赋值操作 构造函数 判断Integer类型的值是否相等 我们知道Integer是int的包装类,在jdk1.5以上,可以实现自动装箱拆箱,就是jdk里面会自动帮我们转换,不需要我们手动去强转,所以我们经常在这两种类型中随意写,平时也没什么注意 但Integer他是对象,我们知道 == 比较的是堆中的地址,但有个奇怪的事是, 如果 Integer a = 123, Integer b = 123,可以返回true,但如果Intege

  • MyBatis if test 判断字符串相等不生效问题

    目录 MyBatis if test 判断字符串相等不生效 原因分析 解决方法 MyBatis if test 判断字符串相等的坑 1. if 判断字符串 2. if嵌套 MyBatis if test 判断字符串相等不生效 采用 MyBatis 框架操作 MySQL 数据库时,判断传入的字符串 priceFlag 值为"0"时,按照 price 属性降序排列,如下 xml 语句未生效: <if test="priceFlag != null and priceFlag

  • Mybatis 中如何判断集合的size

    Mybatis中判断集合的size,可以用下面的方法来做. <if test="null != staffCodeList and staffCodeList.size > 0"> and gui.USER_CODE not in <foreach collection="staffCodeList" item="staffCode" open="(" separator="," c

  • Mybatis返回int或者Integer类型报错的解决办法

    会报错如下: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.bill.springMybatis.dao.UserDao.getUserIdByName attempted to return null from a m

  • mybatis if test条件判断语句中的判断问题分析

    目录 iftest条件判断语句中的判断问题 我在mybatis中定义的sql语句如下 或使用equals() mybatis中iftest判断大坑 使用Mybatis时,常常会判断属性是否为空 原因分析 if test条件判断语句中的判断问题 写这个主要是描述在mybatis中要注意的问题,很不幸,自己没注意,跳坑了. 我在mybatis中定义的sql语句如下 <if test="facilityOccupied != null and facilityOccupied != '' and

随机推荐