//连接字符串
String url="jdbc:
mysql://localhost/"+dbName+"?user="+userName+"&;pass
word="+userPasswd;
Class.forName(driverName).newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
//每页显示记录数
int PageSize = 8;
int StartRow = 0; //开始显示记录的编号
int PageNo=0;//需要显示的页数
int CounterStart=0;//每页页码的初始值
int CounterEnd=0;//显示页码的最大值
int RecordCount=0;//总记录数;
int MaxPage=0;//总页数
int PrevStart=0;//前一页
int NextPage=0;//下一页
int LastRec=0;
int LastStartRecord=0;//最后一页开始显示记录的编号
//获取需要显示的页数,由用户提交
if(request.getParameter("PageNo")==null){ //如果为空,则表示第1页
if(StartRow == 0){
PageNo = StartRow + 1; //设定为1
}
}else{
PageNo = Integer.parseInt(request.getParameter("PageNo")); //获得用户提交的页数
StartRow = (PageNo - 1) * PageSize; //获得开始显示的记录编号
}
//因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示
//一定数量的页面链接
//设置显示页码的初始值!!
if(PageNo % PageSize == 0){
CounterStart = PageNo - (PageSize - 1);
}else{
CounterStart = PageNo - (PageNo % PageSize) + 1;
}
CounterEnd = CounterStart + (PageSize - 1);
%>
<%
//获取总记录数
ResultSet rs = statement.executeQuery("select count(*) from items" );
rs.next();
RecordCount = rs.getInt(1);
rs = statement.executeQuery("SELECT image_url,author,price,item_id FROM items ORDER BY item_id DESC LIMIT "
+StartRow+", "+PageSize);
//获取总页数
MaxPage = RecordCount % PageSize;
if(RecordCount % PageSize == 0){
MaxPage = RecordCount / PageSize;
}else{
MaxPage = RecordCount/PageSize+1;
}
%>
分页显示记录 |
<%="总共"+RecordCount+"条记录 - 当前页:"+PageNo+"/"+MaxPage %> |
记录序号 |
图像路径 |
作者 |
价格 |
图书编号 |
<%
int i = 1;
while (rs.next()) {
int bil = i + (PageNo-1)*PageSize;
%>
<%=bil %> |
<%=rs.getString(1)%> |
<%=rs.getString(2)%> |
<%=rs.getString(3) %> |
<%=rs.getString(4)%> |
<%
i++;
}%>
>
<% out.print(" "); //显示第一页或者前一页的链接 //如果当前页不是第1页,则显示第一页和前一页的链接 if(PageNo != 1){ PrevStart = PageNo - 1; out.print("第一页 : "); out.print("前一页"); } out.print("["); //打印需要显示的页码 for(int c=CounterStart;c<=CounterEnd;c++){ if(c if(c == PageNo){ if(c %PageSize == 0){ out.print(c); }else{ out.print(c+" ,"); } }else if(c % PageSize == 0){ out.print(""+c+""); }else{ out.print(""+c+" ,"); } }else{ if(PageNo == MaxPage){ out.print(c); break; }else{ out.print(""+c+""); break; } } } out.print("]");; if(PageNo < MaxPage){ //如果当前页不是最后一页,则显示下一页链接 NextPage = PageNo + 1; out.print("下一页"); } //同时如果当前页不是最后一页,要显示最后一页的链接 if(PageNo < MaxPage){ LastRec = RecordCount % PageSize; if(LastRec == 0){ LastStartRecord = RecordCount - PageSize; } else{ LastStartRecord = RecordCount - LastRec; } out.print(":"); out.print("最后一页"); } out.print(""); %>
|
<%
rs.close();
statement.close();
connection.close();
%>