1
回答
通过mapper单表复杂条查询
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

@Liuzh_533 你好,想跟你请教个问题:怎么使用Example做单表复杂条件查询,我的查询条件如下,条件是通过showName和通过性别查询,性别有三种情况(男,女,未知),在未知中数据库又有两种情况(一是UNKNOWN,二是用户没有填)。怎么实现以下,还请帮忙,谢谢!

        // 设置分页条件
        PageHelper.startPage(page, rows);
  
        Example example = new Example(User.class);
           // 设置排序条件
        example.setOrderByClause("delMark ASC,create_time DESC");
        Criteria createCriteria = example.createCriteria();
        
        // 通过显示名查询
        if (StringUtils.isNotBlank(showName)) {
            createCriteria.andLike("showName", "%"+showName+"%");
        }
        // 通过邮箱查询
        if (StringUtils.isNotBlank(email)) {
            createCriteria.andLike("email", "%"+email+"%");
        }
        // 通过性别查询
        if (StringUtils.isNotBlank(sex) && !StringUtils.equals("-1", sex)) {
            if (StringUtils.equals("UNKNOWN", sex)) {
                createCriteria.andIsNull("sex");
                example.or().andEqualTo("sex", sex);
            }else {
                createCriteria.andEqualTo("sex", sex);
            }
        }
        // 通过系统类型查询
        if (StringUtils.isNotBlank(osType) && !StringUtils.equals("-1", osType)) {
            createCriteria.andEqualTo("osType", osType);
        }
        // 通过区域查询
        if (StringUtils.isNotBlank(area) && !StringUtils.equals("-1", area)) {
            createCriteria.andEqualTo("area", area);
        }        
        
        List<User> items = this.userMapper.selectByExample(example);

<无标签>
举报
jinjun_luo
发帖于3个月前 1回/62阅
顶部