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);
    }

猜你喜欢

转载自blog.csdn.net/wdyan297/article/details/133147335
今日推荐