此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【qiao_happy123】截止到2008-07-25 17:31:02的历史汇总数据(不包括此帖):
发帖的总数量:8                        发帖的总分数:160                      每贴平均分数:20                       
回帖的总数量:16                       得分贴总数量:3                        回帖的得分率:18%                      
结贴的总数量:0                        结贴的总分数:0                        
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:8                        未结的总分数:160                      
结贴的百分比:0.00  %               结分的百分比:0.00  %                  
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    写个存储过程在数据库端分页,具体存储过程的写法与你用的是什么数据库有关,你google一下吧
      

  2.   

    这个问题和框架无关
    可以在SQL语句上做文章,
    SQLSERVER2000用TOP,
    mysql用limit,
    这样每次只查出你需要的一页数据
      

  3.   

    去javaeye看看有很多现成的类,分页主要就是算法的问题。
      

  4.   

    确实,和struts啥关系也没用,你是用sql写的dao,还是用框架,如hibernate,我这里都有现成例子
      

  5.   

    hibernate实现倒是蛮简单的,设置两个参数就行。
      

  6.   

       先进流行实用的分页插件多的是哦,ectable就不错,还支持条件查询等等,自己写个ectatable和hibernate的集成查询就好了,源代码虽然有现成的,但不是我个人开发出来的,不能给你呵呵 说了等于没说。。
      

  7.   

    http://blog.csdn.net/carefree31441
    用结果集进行分页,简单实用!
      

  8.   

    用Hibernate 我这儿有个例子
     <1>先写一个通用JavaBean :PageInfo.javapublic class PageInfo { private Integer beginIndex,everyPage,totalPage,totalRecords;//分别是 开始页 每页要显示的页数 总共页数 总记录数 public Integer getBeginIndex() {
      return beginIndex;
     }
     public void setBeginIndex(Integer beginIndex) {
      this.beginIndex = beginIndex;
     }
     public Integer getEveryPage() {
      return everyPage;
     }
     public void setEveryPage(Integer everyPage) {
      this.everyPage = everyPage;
     }
     public Integer getTotalPage() {
      return totalPage;
     }
     public void setTotalPage(Integer totalPage) {
      this.totalPage = totalPage;
     }
     public Integer getTotalRecords() {
      return totalRecords;
     }
     public void setTotalRecords(Integer totalRecords) {
      this.totalRecords = totalRecords;
     }
     
    }<2>public List<User> searchUser(User user, PageInfo pageInfo) {  init();
      Session session = null;
      List<User> list = null;  try {
       session = this.ht.getSessionFactory().openSession();
       // 查询操作
       String hql10 = "select u from User u where 1=1";
       // 通过自定义的getHql()方法得到hql语句
       hql10 = this.getHql(hql10, user);
       Query q4 = session.createQuery(hql10);
       this.setValue(q4, user);
       list = (List<User>) q4.iterate();
       // 分页操作
       String hql11 = "select count(u) from User u ";
       Query q2 = session.createQuery(hql11);
       List list3 = q2.list();
       int count = (Integer) list3.get(0);
       pageInfo.setTotalRecords(count);// 设置总记录数
       int temp = count % pageInfo.getEveryPage();// 得取总页数
       if (temp == 0) {
        pageInfo.setTotalPage(temp);
       } else {
        pageInfo.setTotalPage(temp + 1);
       }
      } catch (Exception e) {  }  return list;
     }
      

  9.   

    嗯,这得在sql中做文章,不能全部读,要哪几条读哪几条,不然内存会用完.
      

  10.   

    分布可以采用通用的方法,就是前台后台一起操作,使用SQL操作每次取出来的记录集,一般根据需要可以每次100条,然后把这100条记录存储到一个结构中,可以在前台每次显示固定的条数,可以每次10条,这样如果用户只关心交前面的记录,就可以减少与数据库的交互.而且也不用担心数据量过大的情况.
      

  11.   

    用sql语句分页最好不过了,oracle,mysql,sqlserver都可以,其它的数据库没试过,应该也可以的
      

  12.   

    用数据库分页,不要把数据全部查查出来做分页
    可以用hibenate,支持分页
      

  13.   


    public static OracleCachedRowSet getPageResultSet(MyConnection conn, int pageindex,
                        int pagesize, String sql) {        OracleCachedRowSet tmpretrowset = null;
            ResultSet tmpset = null;        StringBuffer pagingSelect = new StringBuffer(100);
            pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
            pagingSelect.append(sql);
            pagingSelect.append(" ) row_ where rownum <= ?) where rownum_ > ?");
            try {
                // 这边Index从0开始
                if (pageindex < 1)
                    pageindex = 1;
                int m = (pageindex - 1) * pagesize;
                int n = m + pagesize;            PreparedStatement tmpstatement = conn.prepareStatement(pagingSelect.toString());
                tmpstatement.setInt(1, n);
                tmpstatement.setInt(2, m);            try {
                    tmpset = tmpstatement.executeQuery();
                    tmpretrowset = new OracleCachedRowSet();
                    tmpretrowset.populate(tmpset);
                } catch (SQLException ex1) {
                    LogManager.getInstance().writeLog(LogManager.level_error, ex1.toString());
                }
                OracleDBHelper.safeClose(tmpset);
                OracleDBHelper.safeClose(tmpstatement);
            } catch (SQLException ex) {
                LogManager.getInstance().writeLog(LogManager.level_error, ex.toString());
            }
            return tmpretrowset;
        }