为了统一部门内开发中分页方式的统一,以下是分页传参、处理、响应结果封装的规范
1.请求参数
请求参数主要两个对象,一个是和数据库表结构对应的实体对象(最好采用自定义成DTO用于传参,因为查询很可能涉及复杂条件或关联查询);另一个是分页信息对象,对象存放2个必要参数和2个非必要参数,必要参数是limit每页总条数,offset当页起始位置,非必要参数为sort需要排序的字段名,order排序方式(默认ASC)
/**
* 分页数据封装类.
*/
public class Page implements java.io.Serializable {
private static final long serialVersionUID = -5823482162101235168L;
public static final String ORDER_ASC = "ASC";
public static final String ORDER_DESC = "DESC";
private int offset;
private int limit;
private String sort;
private String order = ORDER_ASC;
public Page() {
this(0, Integer.MAX_VALUE);
}
public Page(int offset, int limit) {
this.offset = offset;
this.limit = limit;
}
public Page(int offset, int limit, String sort, String order) {
this.offset = offset;
this.limit = limit;
this.sort = sort;
this.order = order;
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
public int getOffsetLimit() {
return this.offset + this.limit;
}
public String toString() {
return "[Page: " + offset + ", " + limit + ", " + sort + ", " + order + "]";
}
}
2.查询组装
先组装查询条件,若没有组装工具需要自己拼接时需注意拼接不要使用str