取的java list里前5条数据

zy0402 2009-07-24 02:47:46
从数据库查出数据存放在list里,但我只要取得前5条数据显示在页面,该怎么做
...全文
6176 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqq592440660 2009-07-25
  • 打赏
  • 举报
回复

排序可以用Collections.sort();
fengmy123 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuliang_5016 的回复:]
注意:list是无序的,如果要求每次要取一样的记录。

1.取数语句要排序。
2.不用list,用treemap,实现内部排序。
[/Quote]

list是有序的,set才是无序的
老张-AI 2009-07-24
  • 打赏
  • 举报
回复
sql语句解决
我其实很低调 2009-07-24
  • 打赏
  • 举报
回复
楼主是不是想用缓存来分页,每次与数据库交互取30条记录(假如是30),然后在用java对这30条分页。

list里面不是有个方法吗。。public List<E> subList(int fromIndex,int toIndex)

listOf5=list.subList(0,5)
Alex_20 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 kingzchina 的回复:]
index 0-4不就是前5个吗?
[/Quote]

表面上你java一个循环取了4条记录,数据库为了你取这4条记录使用的计算资源和存储资源可就大了去了,它要把所有符合条件的记录都筛选出来准备供你java端使用哪怕最后你没用到。做和数据库相关的程序你不能只考虑java这一方面,数据库的访问压力你也要考虑,否则程序的性能肯定要出问题的。
bayougeng 2009-07-24
  • 打赏
  • 举报
回复
你是在做分页吧?给你提供一个思路,我们公司现在的框架就这样做。
用两段SQL来实现。
一段SQL用来检索满足条件的记录总数。并根据这个条数做成分页按钮。
一段SQL用来检索一页的数据。
postgres中是limit...offset...
oracle中是rownum
其他的数据库你要自己查了。
KingZChina 2009-07-24
  • 打赏
  • 举报
回复
index 0-4不就是前5个吗?
钱不是问题 2009-07-24
  • 打赏
  • 举报
回复
sql server中:

select top 6 * from table
黑色HJ 2009-07-24
  • 打赏
  • 举报
回复
4楼是正解

例如在oracle中:

select * from table where rownum < 6;

这里的rownum在oracle中代表的就是行
ForUForM 2009-07-24
  • 打赏
  • 举报
回复
观看一下
sangshusen_1988 2009-07-24
  • 打赏
  • 举报
回复
最好在查询的时候分页,只查询出来你需要的5条。存入list中就可以啦
elevationkaiserk 2009-07-24
  • 打赏
  • 举报
回复
直接用sql语句解决就行了,或者写个像分页一样的代码
xlxyeyu 2009-07-24
  • 打赏
  • 举报
回复
如果是在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;
}
});

}
Alex_20 2009-07-24
  • 打赏
  • 举报
回复
最佳的办法是使用sql语句直接把你想取的数据直接过滤出来,但是这种 SQL不同的数据库不同的写法,我写的例子是mysql的,别的数据你可以自己去google

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)

SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
wuliang_5016 2009-07-24
  • 打赏
  • 举报
回复
注意:list是无序的,如果要求每次要取一样的记录。

1.取数语句要排序。
2.不用list,用treemap,实现内部排序。
zhuzhusany 2009-07-24
  • 打赏
  • 举报
回复
for循环控制index啊
w0ainiwain 2009-07-24
  • 打赏
  • 举报
回复
从结果集中找出数据。装到LIST中。返回一个LIST的集合。在前台再用一个LIST装一下。只取5行就可以撒。显示在表格的话用Vector

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧