方法大致有三种: 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的强大性能决定的)

|