取的java list里前5条数据 从数据库查出数据存放在list里,但我只要取得前5条数据显示在页面,该怎么做 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从结果集中找出数据。装到LIST中。返回一个LIST的集合。在前台再用一个LIST装一下。只取5行就可以撒。显示在表格的话用Vector 注意:list是无序的,如果要求每次要取一样的记录。1.取数语句要排序。2.不用list,用treemap,实现内部排序。 最佳的办法是使用sql语句直接把你想取的数据直接过滤出来,但是这种 SQL不同的数据库不同的写法,我写的例子是mysql的,别的数据你可以自己去googleSELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 如果是在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; } }); } 直接用sql语句解决就行了,或者写个像分页一样的代码 最好在查询的时候分页,只查询出来你需要的5条。存入list中就可以啦 4楼是正解例如在oracle中:select * from table where rownum < 6;这里的rownum在oracle中代表的就是行 sql server中:select top 6 * from table 你是在做分页吧?给你提供一个思路,我们公司现在的框架就这样做。用两段SQL来实现。一段SQL用来检索满足条件的记录总数。并根据这个条数做成分页按钮。一段SQL用来检索一页的数据。postgres中是limit...offset...oracle中是rownum其他的数据库你要自己查了。 表面上你java一个循环取了4条记录,数据库为了你取这4条记录使用的计算资源和存储资源可就大了去了,它要把所有符合条件的记录都筛选出来准备供你java端使用哪怕最后你没用到。做和数据库相关的程序你不能只考虑java这一方面,数据库的访问压力你也要考虑,否则程序的性能肯定要出问题的。 楼主是不是想用缓存来分页,每次与数据库交互取30条记录(假如是30),然后在用java对这30条分页。list里面不是有个方法吗。。public List<E> subList(int fromIndex,int toIndex) listOf5=list.subList(0,5) list是有序的,set才是无序的 排序可以用Collections.sort(); java 已知两点坐标,另外一点到这两点的距离,求另一个点 double类型和int相乘后值不对 排序问题! 关于魂斗罗中的发子弹问题 抽象类与接口的用途区别 请大家帮我改一下程序(谢了) 如何在DOS窗口下用JBuilder? file类中有这种方法吗? 急求饼图、直方图 Applet为什么能在JBuiler5中调试,而不能在浏览器中显示 为什么公开的类在的文件的名字必须和类名相同? ArrayList的删除方法
2.不用list,用treemap,实现内部排序。
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;
}
});
}
用两段SQL来实现。
一段SQL用来检索满足条件的记录总数。并根据这个条数做成分页按钮。
一段SQL用来检索一页的数据。
postgres中是limit...offset...
oracle中是rownum
其他的数据库你要自己查了。
表面上你java一个循环取了4条记录,数据库为了你取这4条记录使用的计算资源和存储资源可就大了去了,它要把所有符合条件的记录都筛选出来准备供你java端使用哪怕最后你没用到。做和数据库相关的程序你不能只考虑java这一方面,数据库的访问压力你也要考虑,否则程序的性能肯定要出问题的。
listOf5=list.subList(0,5)
list是有序的,set才是无序的
排序可以用Collections.sort();