从数据库查出数据存放在list里,但我只要取得前5条数据显示在页面,该怎么做

解决方案 »

  1.   

    从结果集中找出数据。装到LIST中。返回一个LIST的集合。在前台再用一个LIST装一下。只取5行就可以撒。显示在表格的话用Vector
      

  2.   

    注意:list是无序的,如果要求每次要取一样的记录。1.取数语句要排序。
    2.不用list,用treemap,实现内部排序。
      

  3.   

    最佳的办法是使用sql语句直接把你想取的数据直接过滤出来,但是这种 SQL不同的数据库不同的写法,我写的例子是mysql的,别的数据你可以自己去googleSELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
      

  4.   

    如果是在Hirbernate中的话,可以参考以下代码:
    public List findDate(final int first,final int size, final String sql){

    return getHibernateTemplate().executeFind(new HibernateCallback(){
    public Object doInHibernate(Session s) throws HibernateException{
    Query query = s.createQuery(sql);//SQL中最好要有一个Order By
    query.setFirstResult(first);//开始数据
    query.setMaxResults(size);//list中最大记录数
    List list = query.list();
    if(list != null && !list.isEmpty())
    return list;
    else
    return null;

    });

    }
      

  5.   

    直接用sql语句解决就行了,或者写个像分页一样的代码
      

  6.   

    最好在查询的时候分页,只查询出来你需要的5条。存入list中就可以啦
      

  7.   

    4楼是正解例如在oracle中:select * from table where rownum < 6;这里的rownum在oracle中代表的就是行
      

  8.   

    sql server中:select top 6 * from table 
      

  9.   

    你是在做分页吧?给你提供一个思路,我们公司现在的框架就这样做。
    用两段SQL来实现。
    一段SQL用来检索满足条件的记录总数。并根据这个条数做成分页按钮。
    一段SQL用来检索一页的数据。
    postgres中是limit...offset...
    oracle中是rownum
    其他的数据库你要自己查了。
      

  10.   


    表面上你java一个循环取了4条记录,数据库为了你取这4条记录使用的计算资源和存储资源可就大了去了,它要把所有符合条件的记录都筛选出来准备供你java端使用哪怕最后你没用到。做和数据库相关的程序你不能只考虑java这一方面,数据库的访问压力你也要考虑,否则程序的性能肯定要出问题的。
      

  11.   

    楼主是不是想用缓存来分页,每次与数据库交互取30条记录(假如是30),然后在用java对这30条分页。list里面不是有个方法吗。。public List<E> subList(int fromIndex,int toIndex)
     
    listOf5=list.subList(0,5)
      

  12.   


    list是有序的,set才是无序的
      

  13.   


      排序可以用Collections.sort();