方法大致有三种:
1:)用next()方法:(最通用的方法)
选从50-100行
int CurrentRow = 1;
int MinRow = 50;
int MaxRow = 100;
while(rs.next())
{
if (CurrentRow<MinRow)
{
CurrentRow++;
continue;
}
}
2:)用abslout(int row)定位:
先定位到50行,然后next(); (不是所有的jdbc驱动程序都支持)
3:)用sql完成:
SqlServer的语句:
select top 50 * from (select top 100 * from sysobjects order by id desc) as a order by id
或者 SELECT TOP PageSize * FROM(SELECT TOP nPage*PageSize * from YOURTABLE )
Oracle的语句:
select * from (select rownum r ,* from test) tt
where tt.r > 50 and tt.r <= 100;
DB2中:
select * from payment fetch first 5 row only --查前5条记录
(DB2中只支持查上面的形式,既只能查前n条,不支持查后n条,此经验,我已经得到ibm的确认)
测试速度 :
abslute()最慢;定位到10000条以后无法忍受!
next();前面几条快,越往后越慢!
SqlServer语句,比next快很多,但也是越往后越慢!
Oracle语句,最快!几乎不受条数影响!(这主要是由于oracle的强大性能决定的)