在做view的时候往往要把批量数据显示给用户看,那么这个时候我们就要对数据做分页操作
总的来讲分页有两种方式:
1:数据库服务器端处理
就是说在数据库上做查询时就只返回需要的数据如:
从数据库表中的第M条记录开始取N条记录
sqlserver :
SELECT *
FROM ( SELECT Top N *
FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2
然后再对结果集进行处理
oracle:
select * from ( select rownum row_num,TABL_L.* from ( select * from table where A order
by B) TABLE_L ) where row_num >= M and rownum < (M+N) 需要做3层嵌套是因为rownum虚字段的性质造成
2:在应用软件端处理
先使用select * from table A where B order by C
然后对获得的结果处理
while(rs.next()){
intRowCount = rs.getRow();
if(rs.getRow() >= startIndex && rs.getRow() <= endIndex){
//形成显示html
}
}
两种方法各有优势,如果在数据量不是很大的情况下,建议使用第二种,有利于sql的统一
在数据量大以及数据库服务器隔离远和网络传输满的情况下建议使用第一种减少传输量