看这个,希望对你有帮助!
http://www.jspserver.com:8080/cgi-bin/jspbbs/topic.cgi?forum=7&topic=3&show=

解决方案 »

  1.   

    把结果集ResultSet保留下来用不就行了?
    不过这样浪费系统资源,百害无一利
      

  2.   

    ....
    List list = new List();
    ...
    int count=0;
    while(rs.next())
    {
      ....
      list.add(rs);
      count ++;
      ......
    }
    ...
    //When you want to 分页
    for(int i=0;i<count;i++)
    {
    list.get(i)
    }
    我没法测试,这只是一个大体的思路。
      

  3.   

    //When you want to 分页
    for(int i=0;i<count;i++)
    {
    list.get(i).getString(1);
    }
      

  4.   

    嗯,我取得到页面的数据已经被我封装成一定格式的了,所以不可能用sqlrst.next()类似的这种直接跟数据库打交道的语句。我最后取得的是我要求格式的一个数组。另:list怎么样放在客户端呀。如果是在程序里的话,还是要重新读取数据库的信息的呀
      

  5.   

    把各分页的内容放在不同的<div>中,客户端用js控制显示不同分页的<div>段即可。
      

  6.   

    客户端只是向服务器发出请求,什么时候也不能把数据放到客户端呀,
    之所以用list可以不用每页访问数据库,可以减少反复对数据库的操作(当然你也可以用preparement语句(也许用他会更好))。
      

  7.   

    可以把结果集一次性取出,然后放到bean中,每次翻页的时候根据不同的页数,算出不同的起始位(20*(2-1)+1,每页20条记录,第2页的起始位置),然后显示bean即可
      

  8.   

    如果数据库jdbc驱动支持 con.createStatement(...);参数配置在取得ResultSet对象后,游标可以上下移动,就可以不在访问数据库了。
    如果不能支持参数配置,就要重新创建新的ResultSet对象。
    至于参数,jdk的Doc有详细说明!
      

  9.   

    我自己认为这样会好些,在用户第一次访问时,统计记录总数,并发送到客户端,以后用limit来分页,这样可以最大限度减轻服务器负担,如果我用PHP写程序,通常是这样的,不过用JSP或ASP,最没这样用过,毕竟absolute属性用起来很方便。
      

  10.   

    1。每页显示的记录数目,在页面上也是可以控制的。我想这样的话,用bean就不怎么好了,而且我没有写过bean.
    2。本来觉得用〈div〉好像不错,可是客户端太多数据了。
    3。我想请问:什么叫做用limit分页呀
      

  11.   

    下面是我以前写过的一个通用的翻页程序,不过这个程序是在bean的基础上应用的,给你贴出来,也许会对你有些帮助,而且它支持在页面控制记录数。这个东东是要结合servlet来用的,我也把翻页的通用jsp同时发给你。
    PageMange.java
    package com.ecs.tools;/**
     * 此处插入类型说明。
     * 创建日期:(2001-4-6 15:15:43)
     * @author:lbyy
     */
    import com.ecs.tools.PageManageBean;
    import com.ecs.base.po.ECSPO;
    import com.ecs.base.po.ECSPL;import com.ecs.base.bo.ECSBean; public class PageManage extends com.ecs.base.bo.ECSBO{
    /**
     * PageMange 构造子注解。
     */private PageManageBean pageManageBean=null;
    private ECSPO ecspo=null;
    public  ECSBean ecsbean=null;
    public void setECSPO(ECSPO po){
    ecspo=po;
    }
    public void setECSBean(ECSBean bean){
    ecsbean=bean;
    }
    public void setPageManageBean(PageManageBean tempBean){
    pageManageBean=tempBean;
    this.resultSize=pageManageBean.getPageSize();
    this.startPosition=(pageManageBean.getPageCount()-1)*pageManageBean.getPageSize();
    }
    public ECSBean query() throws com.ecs.base.exception.ECSCommandExecuteException, java.sql.SQLException{
    ECSPL pl = new ECSPL();
    pl.setPO(ecspo);
    pl.setWhereClause(this.whereSql);
    pl.setResultSize(this.resultSize);
    pl.setStartPosition(this.startPosition);
    pl.retrieve();
    ecsbean = (ECSBean)pl.getResultList();
    return ecsbean;
    }
    public PageManage() {
    super();
    }private int resultSize=0;private int startPosition=0;private String whereSql=" 1=1 ";public ECSBean execute() throws com.ecs.base.exception.ECSCommandExecuteException, java.sql.SQLException{
    ECSPL pl = new ECSPL();
    pl.setPO(ecspo);
    pl.retrieve();
    ecsbean = (ECSBean)pl.getResultList();
    return ecsbean;
    }public int getAvailableCount() throws com.ecs.base.exception.ECSCommandExecuteException, java.sql.SQLException{
    int rows=0;
    ECSPL pl = new ECSPL();
    pl.setPO(ecspo);
    pl.setWhereClause(this.whereSql);
    try{
    pl.retrieve();
    rows=pl.getAvailableCount();

    }
    catch(java.sql.SQLException ex2){
    throw new com.ecs.base.exception.ECSCommandExecuteException(ex2.getMessage());
    }
    catch(java.lang.Exception e){
    }
    return rows;
    }public void setResultSize(int s){
    this.resultSize=s;
    }public void setStartPosition(int s){

    this.startPosition=s;
    }public void setWhereSql(String s){
    whereSql=s;
    }}
    PageMangeBean.javapackage com.ecs.tools;/**
     * 此处插入类型说明。
     * 创建日期:(2001-4-6 15:27:45)
     * @author:lbyy
     */
    public class PageManageBean extends com.ecs.base.po.bean.ECSBean {
    /**
     * PageManageBean 构造子注解。
     */
    private int currentPage=1;    //当前的页数
    private int pageSize=10;      //每页的条数
    private int pageCount=0;      //总共的页数
    public PageManageBean() {
    super();
    }
    public void setCurrentPage(int i){
    this.currentPage=i;
    }
    public void setPageSize(int i){
    this.pageSize=i;
    }
    public void setPageCount(int i){
    this.pageCount=i;
    }
    public int getPageCount(){
    return pageCount;
    }
    public int getPageSize(){
    return pageSize;
    }
    public int getCurrentPage(){
    return currentPage;
    }
    }page.jsp<%
    PageManageBean bean=(PageManageBean)request.getAttribute("pagemanage");
    int pagesize=bean.getPageSize();  //每页的条数
    int pagecount=bean.getPageCount();  //页数
    int count=bean.getCurrentPage();     //总条数
    int firstpage=1;
    int before=pagecount-1;
    int after=pagecount+1;
    int last=1;
    if((count%pagesize)==0){
    last=(count/pagesize);
    }
    else{
    last=count/pagesize+1;
    }
    %>
    <script language=javascript>
    <!--
    function first(){
    form1.page.value = <%=firstpage%> ;
    form1.submit();

    }
    function before(){
    form1.page.value = <%=before%> ;
    form1.submit();

    }
    function after(){
    form1.page.value = <%=after%> ;
    form1.submit();

    }
    function last(){
    form1.page.value = <%=last%> ;
    form1.submit();

    }-->
    </script>
    <%=count%>
    <input type=hidden name=page >
    <input type=hidden name=pagesize value=<%=pagesize%>>
    <input type=button value=首页 <%if(pagecount==1){%>  disabled  <%}%> onclick="first()">
    <input type=button value=上一页 <%if(pagecount==1){%>  disabled  <%}%> onclick="before()">
    <input type=button value=下一页 <%if((count>=((pagecount-1)*pagesize)+1)&&(count<=(pagecount*pagesize))){%>  disabled  <%}%> onclick="after()">
    <input type=button value=末页 <%if((count>=((pagecount-1)*pagesize)+1)&&(count<=(pagecount*pagesize))||(pagecount>count)){%>  disabled  <%}%> onclick="last()">