要实现通用的分页查询要实现两个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”