public class LimitRequest<T> {
private int pageStart = 0; //开始 limit 第一个参数
private int pageEnd = 0; //结束 limit 第二个参数
private int pageIndex; //页数
private int pageSize; //行数
private T data;
public LimitRequest() {
}
/**
* 该构造函数接受两个字符串参数 page 和 rows,用于表示页数和行数。
* 如果 page 参数为空或为 null,则将页数 pageIndex 设置为 1,否则将其解析为整数并设置为 pageIndex。
* 如果 rows 参数为空或为 null,则将行数 pageSize 设置为 10,否则将其解析为整数并设置为 pageSize。
* 如果 pageIndex 为 0(通常不应该为0),则将其强制设置为 1,以确保页数不会小于 1。
* 最后,根据 pageIndex 和 pageSize 计算 pageStart 和 pageEnd。
* @param page
* @param rows
*/
public LimitRequest(String page, String rows) {
this.pageIndex = StringUtils.isEmpty(page) ? 1 : Integer.parseInt(page);
this.pageSize = StringUtils.isEmpty(page) ? 10 : Integer.parseInt(rows);
if (0 == this.pageIndex) {
this.pageIndex = 1;
}
this.pageStart = (this.pageIndex - 1) * this.pageSize;
this.pageEnd = this.pageSize;
}
/**
* 该构造函数接受两个整数参数 page 和 rows,用于表示页数和行数。
* 如果 page 参数为 0,则将页数 pageIndex 设置为 1,否则将其设置为 page 的值。
* 如果 rows 参数为 0,则将行数 pageSize 设置为 10,否则将其设置为 rows 的值。
* 最后,根据 pageIndex 和 pageSize 计算 pageStart 和 pageEnd。
* @param page
* @param rows
*/
public LimitRequest(int page, int rows) {
this.pageIndex = 0 == page ? 1 : page;
this.pageSize = 0 == rows ? 10 : rows;
this.pageStart = (this.pageIndex - 1) * this.pageSize;
this.pageEnd = this.pageSize;
}
/**
* 该方法接受两个字符串参数 page 和 rows,用于更新页数和行数。
* 它的逻辑与第一个构造函数类似,首先解析这两个参数,然后根据它们计算 pageIndex、pageSize、pageStart 和 pageEnd。
* 该方法的主要作用是在需要更新分页参数时,可以调用它来更新对象的状态。
* @param page
* @param rows
*/
public void setPage(String page, String rows) {
this.pageIndex = StringUtils.isEmpty(page) ? 1 : Integer.parseInt(page);
this.pageSize = StringUtils.isEmpty(page) ? 10 : Integer.parseInt(rows);
if (0 == this.pageIndex) {
this.pageIndex = 1;
}
this.pageStart = (this.pageIndex - 1) * this.pageSize;
this.pageEnd = this.pageSize;
}
public int getPageStart() {
return pageStart;
}
public void setPageStart(int pageStart) {
this.pageStart = pageStart;
}
public int getPageEnd() {
return pageEnd;
}
public void setPageEnd(int pageEnd) {
this.pageEnd = pageEnd;
}
public T getData() {
return data;
}
public void setData(T data) {
if (data instanceof String) {
String str = (String) data;
if (StringUtils.isEmpty(str)){
data = null;
}
}
this.data = data;
}
}
之后调用接口完成分页查询就可以了
sql代码大致为:
SELECT id, group_id, group_name
FROM server
WHERE group_id = #{data}
order by id desc
limit #{pageStart},#{pageEnd}
标签:初始化,pageIndex,rows,分页,pageSize,查询,pageStart,pageEnd,page
From: https://www.cnblogs.com/chy07/p/17743829.html