cf六级跳教程跳大箱子:关于数据库查询和Java中ResultSet的问题!!!

来源:百度文库 编辑:高校问答 时间:2024/04/28 04:58:40
数据库中有1000000000000条记录

在JDBC中用select * from talbe 语句
-----------------------------------------
List list = new ArrayList();
for(int i=0;i<10;i++){
rs.next();
list.add(rs.getString("xxxx"));
}
-----------------------------------------
这样只取ResultSet中的10条记录的话。
数据库实际查询了10条还是1000000000000条?
其实是别人分页查询的一部分。。我认为查了全部,他说那只是个假的,物理上只查了10条。。我试了下,速度还行。。请更多的人给点意见,这样行吗?

这肯定是你操作了100000000000000条数据,然后只利用了10条做为显示,这是非常低效的

分页的话。。

用select top 10 * from table来解决吧,这是只取到前10条纪录

ResultSet rs = ......;
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
List list = new ArrayList();
while(rs.next()){
for(int i=0;i<colCount;i++){
String rs1=rs.getString("xxxx");
}
list.add(rs1);
}

这样看看!通过结果集,可以得到原数据结果集,在等到总共的!

当然看你得sql了,当然是返回1000000000000条。
只是你只用了10条而已。

帮你顶起来