本帖最后由 未知数|X| 于 2013-10-30 15:05 编辑
首先要定义四个变量: int pageSize:每页显示多少条记录 int pageNow:希望显示第几页 int pageCount:一共有多少页 int rowCount:一共有多少条记录 说明: pageSize是指定的 pageNow是用户选择的 rowCount是计算出来的 该计算式为 if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } (技巧: 数据库插入: insert into 表名(字段1,2,。。。)select 字段1,2,...from 表名 ) 查询语句 select top pageSize字段名列表from表名where id not in (select top pageSize*(pageNow-1)id from 表名) 以我们前面的users表为例,显示第二页,该查询语句就是: select top 3 * from users where userId not in(select top 3 userId from users) (select top 3 userId from users):选出这个表的前三条 前面再选三条
<h1>用户信息列表</h1> <% //定义四个分页会用到的变量 int pageSize=3;//每页显示多少条记录 int pageNow=1;//默认显示第一页,希望显示第几页 int rowCount=0;//该值从数据库中查询,一共有多少记录 int pageCount=0;//该值是通过pageSize和rowCount,一共有多少页 //接受用户希望显示的页数(pageNow) String s_pageNow=request.getParameter("pageNow"); if(s_pageNow!=null){ //接收到了pageNow pageNow=Integer.parseInt(s_pageNow); } //查询得到rowCount Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System","sa",""); Statement sm=ct.createStatement(); ResultSet rs=sm.exeuteQuery("select count(*) form users "); if(rs.next()){ rowCount=rs.getInt(1); } //计算pageCount if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } //查询出需要显示的记录 rs=sm.exeuteQuery("select top "+pageSize +" * from users where userId not in(select top " +pageSize*(pageNow-1)+" userId from users) "); %> //显示
<table border="1"> <tr><td>用户ID</td><td>用户名字</td><td>密码</td><td>电邮</td><td>级别</td></tr> <% while(rs.next()){ %>
<tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td> <td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr> <%}%> </table> <% //上一页 if(pageNow!=1){ out.println("<a href=wel.jsp?pageNow="+(pageNow-1)+">上一页</a>"); } //显示超链接 for(int i=1;i<=pageCount;i++){ out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>"); } //下一页 if(pageNow!=pageCount){ out.println("<a href=wel.jsp?pageNow="+(pageNow+1)+">下一页</a>"); }
其实分页有很多种方法我想在不用框架的情况下这种是较为简单的方式,如果使用框架Hibernate分页是最简单的方式只要两个方法就搞定,希望这些能对有所帮住我曾经也是靠这个得到启发的 |