zhaoyue6250 2008-11-05 22:43
浏览 210
已采纳

oracle面试

:在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。下面的是网上的答案,不过没有看明白,那讲一下,弄细点,<%

int i=1;

int numPages=14;

String pages = request.getParameter(page) ;

int currentPage = 1;

currentPage=(pages==null)?(1):{Integer.parseInt(pages)}

sql = select count(*) from tables;

ResultSet rs = DBLink.executeQuery(sql) ;

while(rs.next()) i = rs.getInt(1) ;

int intPageCount=1;

intPageCount=(i%numPages==0)?(i/numPages)i/numPages+1);

int nextPage ;

int upPage;

nextPage = currentPage+1;

if (nextPage>=intPageCount) nextPage=intPageCount;

upPage = currentPage-1;

if (upPage<=1) upPage=1;

rs.close();

sql=select * from tables;

rs=DBLink.executeQuery(sql);

i=0;

while((i<numpages*(currentpage-1))&&rs.next()){i++;} <br="">%>

//输出内容

//输出翻页连接

合计:<%=currentPage%>/<%=intPageCount%>第一页href=List.jsp?page=<%=upPage%>>上一页

<%

for(int j=1;j<=intPageCount;j++){

if(currentPage!=j){

%>

>[<%=j%>]

<%

}else{

out.println(j);

}

}

%>

>下一页>最后页





为什么会有

<%

for(int j=1;j<=intPageCount;j++){

if(currentPage!=j){

%>

>[<%=j%>]

<%

}else{

out.println(j);

}

}

%>

这一段呢?他是做什么的呀,那个高手可以说说每一个代码的意思,不光是我问的这个,把上的都解释一下了

  • 写回答

6条回答 默认 最新

  • 「已注销」 2008-11-05 23:19
    关注

    <%
    int i=1;
    int numPages=14;//每页的记录数
    String pages = request.getParameter(page) ; // 取出当前页码参数
    int currentPage = 1;
    currentPage=(pages==null)?(1):{Integer.parseInt(pages)} //转换成数字
    sql = select count(*) from tables;
    ResultSet rs = DBLink.executeQuery(sql) ;
    while(rs.next()) i = rs.getInt(1) ; //连接数据库,查询总记录数
    int intPageCount=1;
    intPageCount=(i%numPages==0)?(i/numPages)i/numPages+1);//计算出总页数
    int nextPage ;
    int upPage;
    nextPage = currentPage+1;
    if (nextPage>=intPageCount) nextPage=intPageCount;//下页的页码
    upPage = currentPage-1;
    if (upPage<=1) upPage=1;//上页的页码
    rs.close();
    sql=select * from tables;
    rs=DBLink.executeQuery(sql);
    i=0;
    while((i %>
    //输出内容
    //输出翻页连接
    合计:<%=currentPage%>/<%=intPageCount%>第一页 href=List.jsp?page=>上一页
    <%
    for(int j=1;j<=intPageCount;j++){
    if(currentPage!=j){
    %>
    >[<%=j%>]//其实page作为一个页码的参数
    <%
    }else{
    out.println(j);
    }
    }
    %>
    >下一页>最后页

    为什么会有
    <%
    for(int j=1;j<=intPageCount;j++){
    if(currentPage!=j){
    %>
    >[<%=j%>]
    <%
    }else{
    out.println(j);
    }
    }
    %>
    这段存在是因为,这个页码除了显示上一页,下一页,还显示第x页的功能,看看javaeye论坛的分页那个样子。而且当前页是不做连接处理。。。

    ok,还有什么问题?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 用三极管设计—个共射极放大电路
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示