有更好的可以分享一下,如果玩的在高级一点,可以用aop
Mybatis的分页插件简单好用,话不多说直接上代码(使用的lombok,你要是不会你就太落后了):
<!-- 分页查询插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
import lombok.Data;
/**
* @program: mqdemo
* @description: 分页实体
* @author: shenning
* @create: 2020-10-09 11:18
*/
@Data
public class PagePaging {
/**
* 当前页码
*/
private int pageNum = 1;
/**
* 每页数量
*/
private int pageSize = 10;
/**
* 页码总数
*/
private int pages;
/**
* 记录总数
*/
private Long total;
}
import com.github.pagehelper.PageInfo;
import lombok.*;
import java.util.List;
/**
* @program: mqdemo
* @description: 通用响应格式数据
* @author: shenning
* @create: 2020-10-09 11:27
*/
@Data
@NoArgsConstructor
public class PageResult<T> {
/**
* 状态码: (如果状态码多,可以用枚举)
* 200代表响应成功
* 500代表响应失败
*/
private int code;
/**
* 响应信息,用来说明响应情况
*/
private String msg;
/**
* 响应的具体数据
*/
private T data;
/**
* 分页数据
* */
private PagePaging page;
/**
* @param code 状态码
* @param msg 响应信息,用来说明响应情况
* @param data 响应的具体数据
* @param pageNum 当前页码
* @param pageSize 每页数量
* @param pages 页码总数
* @param total 记录总数
*/
private PageResult(int code, String msg, T data, int pageNum, int pageSize, int pages, long total) {
this.code = code;
this.msg = msg;
this.data = data;
page=new PagePaging();
this.page.setPageNum(pageNum);
this.page.setPageSize(pageSize);
this.page.setPages(pages);
this.page.setTotal(total);
}
private PageResult(int code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
private PageResult(int code, String msg) {
this.code = code;
this.msg = msg;
}
/**
* 成功返回(用于单条)
* @param msg 响应信息,用来说明响应情况
* @param data 响应数据
* @return
*/
public static <T> PageResult<T> resultSuccess(String msg, T data) {
return new PageResult(200, msg, data);
}
/**
* 成功返回(用于数量多的数据)
* @param msg 响应信息,用来说明响应情况
* @param data 响应数据
* @return
*/
public static <T> PageResult<T> resultSuccessList(String msg, List<T> data) {
PageInfo<?> pf = new PageInfo<>(data);
return new PageResult(200, msg, data, pf.getPageNum(),pf.getPageSize(),pf.getPages(), pf.getTotal());
}
/**
* 失败返回
* @param msg 响应信息,用来说明响应情况
* @return
*/
public static <T> PageResult<T> resultError(String msg) {
return new PageResult(500, msg);
}
}
测试
{
"code": 200,
"msg": "111",
"data": [
{
"id": 1,
"name": "013456789402",
"alertType": "010300",
"isDeleted": 0,
"createdTime": null,
"updatedTime": null
}
],
"page": {
"pageNum": 1,
"pageSize": 3,
"total": 79,
"pages": 27
}
}