通用分页查询

时间:2021-09-04 12:58:55

要实现通用的分页查询要实现两个JavaBean

第一个是封装客户机带过来的分页请求信息

第二个是封装客户机要显示的分页信息

JavaBean的代码如下:

package cn.test.domain;

//封装客户机带过来的分页请求信息
public class PageQuery {

private int currentpage = 1;
private int pagesize = 9;
private String condition; //记住客户机带过来的查询条件 category_id
private String value; //记住客户机带过来的查询条件的值 3
private int startindex;
private String where; //where category_id=?

public int getStartindex() {
this.startindex = (this.currentpage-1)*this.pagesize;
return startindex;
}
public String getWhere() {
if(this.condition==null || this.condition.trim().equals("")){
this.where = null;
}else{
this.where = "where " + condition + "=?";
}
return where;
}

public int getCurrentpage() {
return currentpage;
}
public void setCurrentpage(int currentpage) {
this.currentpage = currentpage;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}


}

 

package cn.test.domain;

import java.util.List;

//封装客户机要显示的分页信息
public class PageBean {

private List list;
private int totalrecord;
private int pagesize;

private int totalpage;
private int currentpage;

private int previouspage;
private int nextpage;
private int[] pagebar;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public int getTotalrecord() {
return totalrecord;
}
public void setTotalrecord(int totalrecord) {
this.totalrecord = totalrecord;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getTotalpage() {

if(this.totalrecord%this.pagesize==0){
this.totalpage = this.totalrecord/this.pagesize;
}else{
this.totalpage = this.totalrecord/this.pagesize + 1;
}

return totalpage;
}

public int getCurrentpage() {
return currentpage;
}
public void setCurrentpage(int currentpage) {
this.currentpage = currentpage;
}
public int getPreviouspage() {
if(this.currentpage-1>0){
this.previouspage = this.currentpage-1;
}else{
this.previouspage = 1;
}
return previouspage;
}
public int getNextpage() {
if(this.currentpage+1>this.totalpage){
this.nextpage = this.totalpage;
}else{
this.nextpage = this.currentpage + 1;
}
return nextpage;
}
public int[] getPagebar() {
this.pagebar = new int[getTotalpage()];
for(int i=1;i<=this.totalpage;i++){
this.pagebar[i-1] = i;
}
return pagebar;
}

}



在MySql中可以很好的支持分页查询比如:

select * from book limit 0,9

这条sql语句代表的意思是从book表中第一行数据开始查,往下数九行,也就是每页显示九条数据,如果是第二页的话只改变第一个数值就可以了也就是“select * from book limit 9,9”