Spring Boot(六) 分页

98 阅读1分钟
  • 添加如下配置类
@Configuration
public class PageConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }

}
  • service
public interface UserService extends IService<UserEnyity> {

    public IPage<UserEnyity> getUsersPage(Integer currentPage,Integer pageSize,String name);
}
  • Impl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEnyity> implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public IPage<UserEnyity> getUsersPage(Integer currentPage, Integer pageSize, String name) {

        LambdaQueryWrapper<UserEnyity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.like(Strings.isNotEmpty(name),UserEnyity::getUsername,name);
        IPage<UserEnyity> page = new Page<>(currentPage,pageSize);
        page = userMapper.selectPage(page,lambdaQueryWrapper);
        return page;
    }

}
  • Controller
/*
 * 分页查询用户
 */
@GetMapping("/listPage")
public GResponse listPage(@RequestParam(value = "currentPage",defaultValue = "1") Integer currentPage,
                          @RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
                          @RequestParam(value = "name",defaultValue = "")String name) {
    IPage<UserEnyity> page = userService.getUsersPage(currentPage, pageSize, name);
    if (currentPage > page.getPages()) {
        page = userService.getUsersPage((int) page.getPages(),pageSize,name);
    }
    return GResponse.success("操作成功",page);
}