mybatis查询参数字段为数字0被判为空字符串

xml的查询语句使用!=null and !=''判空,结果把传入的参数数字0被判断为空字符串

处理方法:

  1. 改变查询语句,只使用!= null,不使用!=''。查询的实体定义查询字段类型为Integer,前端传入空字符串的情况下Integer不会接受而是为null
  2. 查询语句保持不变,改变查询参数类型为String

问题记录:

数据库表字段:

`new_sap_mark` int(0) NULL DEFAULT 1 COMMENT '新SAP标识:1-是;0否'

xml查询判断语句(部分):

<if test="query.newSapMark != null and query.newSapMark != ''">
    AND tcm.new_sap_mark = #{query.newSapMark}
</if>

查询实体:

/**
 * 新SAP标识
*/
@ApiModelProperty(value = "新SAP标识")
private Integer newSapMark;

日志打印:

在传入参数类型为Integer的前提下,第一张传入的参数为0,打印的查询语句中并没有拼接上tcm.new_sap_mark =0,第二张传入的参数为1,打印的查询语句中拼接上了tcm.new_sap_mark = 1。 

将传入参数类型修改为String,不改变查询语句判断,第一张传入的参数为0,打印的查询语句中拼接上了tcm.new_sap_mark =0。

遗留问题:

目前这个情况在本地开发没有,测试环境有,暂时没头绪排除出是为什么,有知道的大佬麻烦评论告知一下。

若有不足,欢迎指正

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值