写一个分页操作的类,楼主看看吧,以后要做分页就调用这个类就可以了/** * 做分页操作的工具类 * @author Administrator * */ public class Page { private int pageidid;//页数 private int prepage;//上一页索引 private int nextpage;//下一页索引 private String next;//下一页文本 private String pre;//上一页文本 private int totalpage;//总页数
public int getTotalpage() { return totalpage; } public void setTotalpage(int totalpage) { this.totalpage = totalpage; } public int getPageidid() { return pageidid; } public void setPageidid(int pageidid) { this.pageidid = pageidid; } public int getPrepage() { return prepage; } public void setPrepage(int prepage) { this.prepage = prepage; } public int getNextpage() { return nextpage; } public void setNextpage(int nextpage) { this.nextpage = nextpage; } public String getNext() { return next; } public void setNext(String next) { this.next = next; } public String getPre() { return pre; } public void setPre(String pre) { this.pre = pre; } public Page(String next, int nextpage, int pageidid, String pre, int prepage,int totalpage) { super(); this.next = next; this.nextpage = nextpage;
例:
Int totalLines; //总的数据行数
Int totalPages; //总的页数
Int pageLines; //每页显示的行数
Int pageNum; //每页的页码编号在此要建立数据库的连接ResultSet rs=statement.executeQuery(select count(*) from mytable)
Int totalLines=rs.getInt(1); //获取总的数据行数pageLines=5 //此项可自己设置if(totalLines % pageLines==0 ){
totalPages=totalLines/pageLines; //获取总的页数
}
else{
totalPages=totalLines/pageLines+1; //获取总的页数
}//此处需要在显示页面上设置页码参数if(request.getParameter("pagenum")==null){
pageNum=1;
}else{
Integer pageNum=(Integer)request.getParameter("pagenum");
if(pageNum<0){
pageNum=1;
}
if(pageNum>totalPages){
pageNum=totalPages;
}
}<在此要设置结果集的游标指针,sorry 此方法忘了 好像是 rs.absolut(Int i) //主要是设置读取数据的起始行>rs=stetement.executeQuery(select * from mytable);
if(rs.next())(
for(int i=0;i<=5;i++){
<在此设置要显示的数据>
}
}
看下吧,详细的代码,表的设计,存储过程,怎么调用都写的非常清楚
http://jackie9305.javaeye.com/blog/351187
说不清楚,用123456带表6条记录,根据插入的顺序从数据库中读出,在web页面上应显示为123456
现在我把5置顶后,再从数据库中读出,在web页面上应显示为512346
我再把4置顶后,再从数据库中读出,在web页面上应显示为451236
我再插入一条数据7,没置顶过,再从数据库中读出,在web页面上应显示为4512367
我再把6置顶后,再从数据库中读出,在web页面上应显示为6451237
我再把4置顶后,再从数据库中读出,在web页面上应显示为4651237
就是说置顶后的数据要一直排在没置顶过的前面。各位大哥给个建议呀///////先谢了
* 做分页操作的工具类
* @author Administrator
*
*/
public class Page {
private int pageidid;//页数
private int prepage;//上一页索引
private int nextpage;//下一页索引
private String next;//下一页文本
private String pre;//上一页文本
private int totalpage;//总页数
public int getTotalpage() {
return totalpage;
}
public void setTotalpage(int totalpage) {
this.totalpage = totalpage;
}
public int getPageidid() {
return pageidid;
}
public void setPageidid(int pageidid) {
this.pageidid = pageidid;
}
public int getPrepage() {
return prepage;
}
public void setPrepage(int prepage) {
this.prepage = prepage;
}
public int getNextpage() {
return nextpage;
}
public void setNextpage(int nextpage) {
this.nextpage = nextpage;
}
public String getNext() {
return next;
}
public void setNext(String next) {
this.next = next;
}
public String getPre() {
return pre;
}
public void setPre(String pre) {
this.pre = pre;
} public Page(String next, int nextpage, int pageidid,
String pre, int prepage,int totalpage) {
super();
this.next = next;
this.nextpage = nextpage;
this.pageidid = pageidid;
this.pre = pre;
this.prepage = prepage;
this.totalpage=totalpage;
}
public Page() {
super();
}
//分页处理方法,传入当前页数,总记录数和每页显示的数量
public void apartPage(int pageid,int all,int num){
this.computeTotal(all, num);//首先计算总页数
this.setPageidid(pageid);
this.setNextpage(pageid);
this.setPrepage(pageid);
this.setNext("下一页");
this.setPre("上一页");
if(pageid>1){//表示有上一页
this.setPrepage(pageid-1);
}else{
this.setPre("首页");
}
int rest=all-pageid*num;
if(rest>0){//表示有下一页
this.setNextpage(pageid+1);
}else{this.setNext("尾页");}
if(this.pre.equals("首页")&&this.next.equals("尾页")){
this.setNext("");
}
}
//计算总页数
private int computeTotal(int all,int num){
int page=all/num;
page=all/num>0?page+1:page;
setTotalpage(page);
return this.totalpage;
}
}