zl程序教程

您现在的位置是:首页 >  后端

当前栏目

mybatis plus分页查询相关

mybatis 查询 分页 相关 Plus
2023-06-13 09:15:25 时间

文章目录[隐藏]

使用 Wrapper 自定义SQL

${ew.customSqlSegment}使用

必须继承baseMapper<entity>才能使用

匹配Wrapper 问题

if (userCompanyVO.getArea()!=null){
    lambdaQueryWrapper.eq(UserCompanyVO::getArea,userCompanyVO.getArea());
}
if (StringUtils.isNotBlank(userCompanyVO.getName())){
    lambdaQueryWrapper.eq(UserCompanyVO::getName,userCompanyVO.getName());
}
if (StringUtils.isNotBlank(userCompanyVO.getUsername())){
    lambdaQueryWrapper.eq(UserCompanyVO::getUsername,userCompanyVO.getUsername());
}

page.setTotal问题

page.setSearchCount(false);
page.setTotal(this.count());

示例:

//Mapper
public interface UserCompanyMapper extends BaseMapper<UserCompanyVO> {

    /**
     * 查询用户信息
     * @param page 分页
     * @param wrapper 条件
     * @return List<UserCompanyVo>
     */
    @Select("select u.id,u.username,u.create_time,u.role_id,c.`name` ,c.phone_one,c.area from user u LEFT JOIN company c   on  u.company_id =  c.id   ${ew.customSqlSegment}")
    IPage<UserCompanyVO> getPageUserCompanyVO(IPage<UserCompanyVO> page, @Param(Constants.WRAPPER) Wrapper<UserCompanyVO> wrapper);
}
//Service
@Override
public IPage<UserCompanyVO> selectUserCompanyVo(Page<UserCompanyVO> page, QueryWrapper<UserCompanyVO> queryWrapper) {
    page.setSearchCount(false);
    page.setTotal(this.count());
    UserCompanyVO userCompanyVO = queryWrapper.getEntity();
    LambdaQueryWrapper<UserCompanyVO> lambdaQueryWrapper = Wrappers.lambdaQuery();
    if (userCompanyVO.getArea()!=null){
        lambdaQueryWrapper.eq(UserCompanyVO::getArea,userCompanyVO.getArea());
    }
    if (StringUtils.isNotBlank(userCompanyVO.getName())){
        lambdaQueryWrapper.eq(UserCompanyVO::getName,userCompanyVO.getName());
    }
    if (StringUtils.isNotBlank(userCompanyVO.getUsername())){
        lambdaQueryWrapper.eq(UserCompanyVO::getUsername,userCompanyVO.getUsername());
    }
    return userCompanyMapper.getPageUserCompanyVO(page,lambdaQueryWrapper);
}