主要需求:
1.查询带分页的列表功能
2.使用自己写的sql实现
3.sql中会涉及到多表关联问题,查询多表字段
4.使用Mybatis Plus的分页功能和条件构造器
废话少说,直接代码!
该方法条件上没有使用Mybatis Plus的条件构造器,而是自己在sql语句中拼接的。
@PostMapping("/page")
public ReturnResult getAllRegisterUser(Page page, UserManagerListDto userManagerListDto) {
IPage allRegisterUser = userManagerService.getAllRegisterUser(page, userManagerListDto);
return new ReturnResult<>(allRegisterUser);
}
IPage getAllRegisterUser(Page page, UserManagerListDto userManagerListDto);
@Override
public IPage getAllRegisterUser(Page page, UserManagerListDto userManagerListDto) {
return userManagerMapper.getAllRegisterUser(page, userManagerListDto);
}
IPage getAllRegisterUser(Page page, @Param("userManagerListDto") UserManagerListDto userManagerListDto);
该方法使用了Mybatis Plus的条件构造器来拼接所需要的条件参数
@PostMapping("/page/wrapper")
public ReturnResult selectMyPage(Page page, UserManagerListDto userManagerListDto) {
QueryWrapper queryWrapper = new QueryWrapper<>();
if (StrUtil.isNotBlank(userManagerListDto.getUserName())) {
queryWrapper.like("a.user_name", userManagerListDto.getUserName());
}
if (StrUtil.isNotBlank(userManagerListDto.getState())) {
queryWrapper.eq("b.state", userManagerListDto.getState());
}
IPage selectMyPage = userManagerService.selectMyPage(page, queryWrapper);
return new ReturnResult<>(selectMyPage);
}
IPage selectMyPage(Page page, Wrapper queryWrapper);
@Override
public IPage selectMyPage(Page page, Wrapper queryWrapper) {
return userManagerMapper.selectMyPage(page, queryWrapper);
}
IPage selectMyPage(Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
注意项: