如何用java实现在数据库中只查询20条记录

zhchzang 2003-09-17 08:00:28
如何用java实现在数据库中只查询20条记录?按时间排序,只要最近的20条记录。数据库用mysql。请问如何实现?
...全文
270 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
telenths 2003-09-20
  • 打赏
  • 举报
回复
to zangzhch(完全电脑白痴)
那就最好考虑一下数据库的设计
尽量控制每个表的记录数
可以建立一个 目录表 类似于 CSDN 的 search ,以时间为区分
通过目录来选择 查询哪张表
这样可以减小 每张表的大小

实在不行 就要 权衡 两种方法各自的效率
如果你的 数据库服务器 比 应用服务器 要牛 那么用 top 20 也未尝不可

如果表中有大量记录 建议在数据库端操作
因为现在的数据库算法已经很成熟了
应用服务器端还是把注意力放在 提供 web 服务上 而不是大量的数据处理
臧忠超 2003-09-20
  • 打赏
  • 举报
回复
to telenths(_非法操作_) 可是如果库越来越大呢?
shuki 2003-09-20
  • 打赏
  • 举报
回复
你可以用ResultSet来获取,Sql=select column from table order by date desc;
然后可以用for(int i=0;i<20;i++){
rs.next();
str = rs.getString();
}
bd4ji 2003-09-20
  • 打赏
  • 举报
回复
如果是C/S结构那么用SQL的TOP会使得网络传输的数据量减少。
swinging 2003-09-20
  • 打赏
  • 举报
回复
同意telenths(_非法操作_) ,
使用SQL语句进行条件限制其实是要整理所有记录的,而在SQL语句中加条件,不同数据库不同,所以也不是很好,如果使用RESULTSET来控制读取记录条数效果差不多,而且没有数据库不同的忧虑。

但是把数据一次性读出来也要看应用环境,如果是WEB服务器就不好。
对超大数据量的分页访问,通常需要做的不是JAVA代码的优化,主要还是包括建索引,使用缓冲和连接池等等技术,所以也没有必要在JAVA代码上深究。
mq612 2003-09-20
  • 打赏
  • 举报
回复
楼上的谢拉,受教
telenths 2003-09-20
  • 打赏
  • 举报
回复
即使使用 top 20 查询时也是要遍历 整个table 的
所以在效率上 没有什么优势

不过可以给 Java 方面的处理 简单了一些

实际上 还不如一次性都读出来 然后让 Java 处理
而 下次再要 下20 个数据就不需要再 读数据库了

读写数据库的花费 要比程序处理的花费大得多
mq612 2003-09-20
  • 打赏
  • 举报
回复
查20条记录,并按照id号的降序排列,我一般用的是微软的数据库
select top 20 * from your_table where ..... ORDER BY id DESC
OneNight 2003-09-20
  • 打赏
  • 举报
回复
不同的数据库应该用的SQL语句不同吧,
Oracle可以用这样的:
select * from your_table where ... and rownum < 21;
臧忠超 2003-09-20
  • 打赏
  • 举报
回复
up
zhchzang 2003-09-17
  • 打赏
  • 举报
回复
SQL语句????? 请问怎么实现?
noratong 2003-09-17
  • 打赏
  • 举报
回复
为什么有SQL语句不用要把它交给java作呢???那不简单些吗???
newsoldier 2003-09-17
  • 打赏
  • 举报
回复
ResultSet中有个setFetchSize(int rows)方法,可设定查询记录条数
至于按时间排序,你可以实现将要查的表按时间排一次序.然后将结果集对象调用setFetchSize(20)

62,615

社区成员

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

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