通用分页查询

来源:互联网 发布:淘宝图片空间怎么上传 编辑:程序博客网 时间:2024/05/21 01:46

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

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

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

JavaBean的代码如下:

package cn.test.domain;//封装客户机带过来的分页请求信息public class PageQuery {private int currentpage = 1;private int pagesize = 9;private String condition;  //记住客户机带过来的查询条件  category_idprivate String value;   //记住客户机带过来的查询条件的值  3private 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”