spring boot,mybatisplus实现分页
1.创建响应类,返回给前端的数据
package com.example.common;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResp<T> {
private long tatle;
private List<T> list;
}
//分页数据
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Page {
private int page;
private int size;
}
//搜索词
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserPage extends Page{
private String name;
private String username;
}
2.创建统一返回类,我们需要里面的data字段
/**
* 1. @ClassName Result
* 2. @Description TODO
* 3. @Author Young
* 4. @Date 2023/9/17 15:46
*/
package com.example.common;
import lombok.Data;
@Data
public class Result<T> {
private static final String SUCCESS_CODE = "200";
private static final String ERROR_CODE = "500";
private String code;
private T data;
private String msg;
public static Result success() {
Result result = new Result();
result.setCode(SUCCESS_CODE);
return result;
}
public static Result success(Object data) {
Result result = new Result();
result.setCode(SUCCESS_CODE);
result.setData(data);
return result;
}
public static Result error(String msg) {
Result result = new Result();
result.setCode(ERROR_CODE);
result.setMsg(msg);
return result;
}
}
3.controller
@GetMapping("/page")
public Result page(UserPage userPage) {
Result<PageResp<User>> result = new Result();
PageResp<User> userPageResp= userService.pageuser(userPage);
result.setData(userPageResp);
return result;
}
4.service
@Override
public PageResp<User> pageuser(UserPage userPage) {
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
if (!StringUtils.isEmpty(userPage.getName())) {
userQueryWrapper.lambda().like(User::getName, userPage.getName());
}
if (!StringUtils.isEmpty(userPage.getUsername())) {
userQueryWrapper.lambda().like(User::getUsername, userPage.getUsername());
}
//封装
Page<User> objectPage = new Page<User>(userPage.getPage(), userPage.getSize());
Page<User> userPage1 = userMapper.selectPage(objectPage, userQueryWrapper);
PageResp<User> objectPageResp = new PageResp<>();
objectPageResp.setTatle(userPage1.getTotal());
objectPageResp.setList(userPage1.getRecords());
return objectPageResp;
}