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

网友投稿 764 2022-12-26

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

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

mybatis判断int是否为空的注意点

1、int为空时会自动赋值0,所以必须用integer作为javaBean的属性值类型。

2、必须注意封装的get.set。也是Integer.不然也会报错。

3、注意好以上两个点,wrtcFxRKR直接用null判断

例子:

public class ExcelPutVo {

private Integer startTime;// 开始时间

private Integer endTime;// 截止时间

private int sentId;// 下达者id

private String onlyUuid;// 唯一标识

public int getSentId() {

return sentId;

}

public void setSentId(int sentId) {

this.sentId = sentId;

}

public String getOnlyUuid() {

return onlyUuid;

}

public void setOnlyUuid(String onlyUuid) {

this.onlyUuid = onlyUuid;

}

public Integer getStartTime() {

return startTime;

}

public void setStartTime(Integer startTime) {

this.startTime = startTime;

}

public Integer getEndTime() {

return endTime;

}

public void setEndTime(Integer endTime) {

this.endTime = endTime;

}

mybatis的xml

parameterType="com.zeng.zhdj.wy.entity.vo.ExcelPutVo">

select *

from count_use

1=1

and sent_id=#{sentId,jdbcType=INTEGER}

and count_end_month <=#{endTime,jdbcType=INTEGER}

and count_start_month >=#{startTime,jdbcType=INTEGER}

and only_type=#{onlyUuid,jdbcType=VARCHAR}

mybatis 映射 null 为 int 时报错

当 mybatis 试图把 null 字段映射到 java 中的 int 类型时,会报这个错。

Caused by: java.lang.RuntimeException: Error setting property 'setTotal_count' of 'com.webank.ccs.benefit.data.BenefitJobStatBOA@3973f34c'. Cause: java.lang.IllegalArgumentException

解决方法

如果这个字段不参与计算,则 java 中的数据类型可以设置为 String,这个 String 引用类型的变量就可以映射 null 了。

同样的情况还适应于数据库中的 Date 类型,若 java 中的映射字段不需要参与计算,则可以直接设置 java 中的类型为 String,这样做的好处是,mysql 中的类型为 Date 类型,查询条件可以直接使用如下格式的字符串去匹配: yyyy-MM-dd 或 yyyyMMdd 甚至是 yyMMdd,甚至是 yy-MM-dd 都可以匹配。

但是对于 mysql 中的金额,一般情况下要映射为 BigDecimal ,这样精确一些。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:flutter图片移动(flutter 图片列表)
下一篇:吉林省一体化政务服务平台(吉林省一体化政务服务平台网址)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~