springboot+MybatisPlus项目中判断前端用户名是否为空时==与equals的区别

问题描述

今天在做简单的数据查询,本意是不需要模糊查询时,直接查询出全部数据。
但是一些字段值为空的数据始终无法查出。
问题出在模糊查询上。
更深层的还有==和equals问题。
在这里插入图片描述
有条件时,根据条件查询结果。
在这里插入图片描述

于是,考虑进行模糊条件的判断,如果为初始值,即为空值则不添加queryWrapper.like。
但是,进行if判断的时候,直接使用了==导致判断始终为true,如下两个图。
在这里插入图片描述在这里插入图片描述

解决办法

不要使用==或者!=进行直接值的判断,具体请参考这个链接中的解答,比较详细。
https://www.zhihu.com/question/21917879/answer/2446068355
而是使用equals做比较判断。如图所示:
在这里插入图片描述
代码如下

public IPage<User> findPage(@RequestParam Integer pageNum,
                                @RequestParam Integer pageSize,
                                @RequestParam(defaultValue = "") String username,
                                @RequestParam(defaultValue = "") String nickname,
                                @RequestParam(defaultValue = "") String address) {
        IPage<User> page = new Page<>(pageNum, pageSize);
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        /*三个if判断主要是因为 queryWrapper进行模糊查询时,如果参数值为空,则会不显示数据*/
        if (!username.equals("")) {
            queryWrapper.like("username", username);
        }
        if (!nickname .equals("")) {
           queryWrapper.like("nickname", nickname);
        }
        if (!address.equals("")) {
            queryWrapper.like("address", address);
        }
        return userService.page(page, queryWrapper);
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值