求分页了啊,有知道的就救救我吧,绝对高分,如果解决了还可以继续加分的,主要是能帮我解决下额
  我的问题是:我在Servlet里的DoGet()方法里通过查询数据库,取到相关的值,这些都没问题的,现在我在JSP页面上做了个文本框和个搜索按钮,假如我现在输入个条件的话可以搜索
出来值 我把这些值放在一个表里显示的,我就想在这分页,之前怎么查询啊别管的,我就是想问我不是查询的值以表的形式显示的吗,我要以10条为一页,这该怎么分页啊?求大哥们帮帮忙啊,解决了还可以加分的,谢谢啊!!!拜托了,希望能贴详细和全的 5555555555555555555555555555555555555555555 先发50分 可以加的

解决方案 »

  1.   

    例如:
    根据条件,查询数据库,看符合条件的记录有多少条.如:select count(1) from tablename where conditions
    根据这个总数record_number和每页显示的需求(每页显示10条),计算出分多少页:
    page_amount=record_number/10;
    if(record_number%10!=0)
    page_amount++;
    然后呢,根据页面传进来的页数n(开始默认显示第一页,n=1),显示第(n-1)*10条到第n*10-1条的记录.
    int count=-1;
    int first_record=(n-1)*10;
    int last_record=n*10-1;
    while(rs.next())
    {
      count++;
      if(count<first_record)
        continue;
      if(count>last_record)
        continue;
      //get record to display
    }
      

  2.   

    如果数据量太大,可以用sql分页
            从数据库表中第M条记录开始检索N条记录
            SELECT * 
            FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2
            where t2.r >= M
            例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
            SELECT * 
            FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2
             Where t2.R >= 10