那你就写sql了, 
指定top数,记录数..

解决方案 »

  1.   

    你去看这个帖子
    http://topic.csdn.net/u/20081007/15/01c35af3-a222-4f5e-a1d2-bf0728924327.html
    里面有我写的一个分页完整方法
      

  2.   

    使用HibernateTemplet有两个方法,可简单实现;看具体API
      

  3.   

    既然楼主不喜欢tag的方式的话!~!
    你可以用Hibernate的分页
    用Query对象或者时Criatier的对象
    比如:query.setFirstResult(1);
         query.setMaxResult(5);
    上面这个就是每一页显示5条数据,显示第一页
      

  4.   

    建议楼主用数据库的物理分布,用hibernate来执行你的sql就可以了
      

  5.   

    我简单的写一个方法吧:
    public List search(int pageNo,int pageSize){
        Sessin session = this.getSession();
        String hql = "from 实体名 t order by t.id asc";
        Query query = session.createQuery(hql);
        //firstResultIndex 从第几条数据开始
        int firstResultIndex = pageSize*(pageNo - 1);    //setFirstResult、setMaxResults表示的是:设置从第几条数据开始,共返回多少条数据
        query.setFirstResult(firstResultIndex );
        query.setMaxResults(pageSize);
    }LZ试试吧。
      

  6.   

    query.setFirstResult(m).setMaxResult(n); 
    m:第一条记录开始位置,
    n:每页显示记录数
    最好专门编写一个封装分页对象的类:package com.hh.onlineshop.po;/**
     * 封装分页对象
     * 
     * @author hc
     * 
     */
    public class Page {
    public static final int DEFAULT_PAGE_SIZE = 5;//默认的每页显示记录数 private int pageIndex;// 页码
    private int pageSize;// 本页记录条数
    private int totalCount;// 总记录条数
    private int pageCount;// 总页数 public Page(int pageIndex,int pageSize){
    if(pageIndex<1)
    pageIndex=1;
    if(pageSize<1)
    pageSize=DEFAULT_PAGE_SIZE;
    this.pageIndex=pageIndex;
    this.pageSize=pageSize;
    }

    //没有指定当前页面显示记录条数,采用默认
    public Page(int pageIndex){
    this(pageIndex,DEFAULT_PAGE_SIZE);
    }

    public int getPageIndex() {
    return pageIndex;
    }

    public int getPageSize() {
    return pageSize;
    } public int getPageCount() {
    return pageCount;
    } public int getTotalCount() {
    return totalCount;
    } public int getFirstResult(){
    return (pageIndex-1)*pageSize;
    }

    public boolean getHasPrevious(){
    return pageIndex>1;
    }

    public boolean getHasNext(){
    return pageIndex<pageCount;
    }

    //设置总记录条数,同时也根据pageSize计算出总页数
    public void setTotalCount(int totalCount) {
    this.totalCount = totalCount;
    pageCount=totalCount/pageSize+(totalCount%pageSize==0?0:1);
    if(totalCount==0){
    if(pageIndex!=1){
    pageIndex=1;
    }
    }else{
    if(pageIndex>pageCount){
    pageIndex=pageCount;
    }
    }
    } public boolean isEmpty(){
    return totalCount==0;
    }}
      

  7.   

    直接数据库查询的时候就分页不行吗?
    select * from TableName limit num1(指定从第几条记录开始查询),num2(从指定的记录往后查几条);
    这不就可以实现分页吗?
      

  8.   

    可以使用HibernateTemplate中的findByCriteria(DetachedCriteria criteria,int firstResultIndex,int pageSize)方法,当前页数:pageNo,一页显示条:pageSize,还需要一个DetachedCriteria criteria;返回 List;
      

  9.   

    Hibernate的Query对象提供个方法
    query.setFirstResult(第几页); 
    query.setMaxResult(每页显示条数); 
      

  10.   

    return this.getListForPage(sql.toString(), offset, length);         public List getListForPage(final String hql, final int offset,  final int length) {
            List retList = getHibernateTemplate().executeFind(new HibernateCallback() {
                public Object doInHibernate(Session session) throws HibernateException, SQLException {
                    Query query = session.createQuery(hql);
                    query.setFirstResult(offset);
                    query.setMaxResults(length);
                    List list = query.list();
                    return list;
                }
            });
            return retList;
         }
      

  11.   

    /**
     *  實現分頁查詢,參數使用SetString方式
     * @param hql
     * @param offset 開始索引
     * @param length 查詢長度
     * @param map 參數集合
     * @return
     */
    public List getListForPage(final String hql,final int offset, final int length,final Map map){
    List retList = getHibernateTemplate().executeFind(new HibernateCallback() {
    public Object doInHibernate(Session session) throws HibernateException, SQLException {
    Query query = session.createQuery(hql);

    //loop集合中參數
    Set set = map.keySet();
    Iterator it = set.iterator();
    while(it.hasNext()){
    String key = String.valueOf(it.next());
    String value = String.valueOf(map.get(key));
    query.setString(key,value);
    }
    query.setFirstResult(offset);
    query.setMaxResults(length);
    List list = query.list();
    return list;
    }
    });
    return retList;
    }
      

  12.   

    完全同意楼上的!!!
    query.setFirstResult(); 
    query.setMaxResults();
      

  13.   

    query.setFirstResult(); 
    query.setMaxResults();
      

  14.   

    一点技术含量都没有 java oop ,java虚拟机感兴趣的来和我谈谈
      

  15.   

    其实分页就是一个sql语句操作
    select Top(" + page_size + ")* from Task where (ID not in(select top(" + (now_page - 1) * page_size + ")ID from Task)) page_size是你一页的大小
    now_page 是当前你要显示第几页
      

  16.   

    呵呵,其实你这里说的分页怎么做的,
    当然,一下子考虑分页是怎么做的,就是有难度了,
    如果你分析一下,
    前台要一页显示10条,那么后台就要每次查询出10条来,
    那样该怎么做呢?
    首先是有个startRow,有个pageSize,有个totalRow,还可以多设置一个,自己设置分页大小,姑且可以和pageSize用同一个,或者是自己设置一个,
    然后就是写代码,
    前台由一个显示页的page,这个你可以单独写,然后嵌入到每一个页面当中,就跟你看的很多网页一样的
    然后后台就写操作,
    这样就ok了,
    明白否?
    自己动手吧,其实很简单的