//运行图: //连接字符串 String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+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; } %>
<% 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++; }%>
> <% rs.close(); statement.close(); connection.close(); %>