代码层的分页(一次查询出全部结果,再获取分页结果)
现在分页的话一般是数据库分页,如果查询结果集不是很大,也可以在在代码层分页;之前项目中碰到过一个数据库分页,速度异常慢(几十秒),后面考虑到结果集不大,就采用这种方案了;
初始分页查询:start=0,limit=20
//查询第一条至第二十条数据
int maxNo=start+limit-1;//19
int minNo=start; //0
for(int i=minNo;i<=maxNo&&i<totalList.size();i++){
resultList.add(totalList.get(i));
}
其中resultList是这次分页查询所需要的结果,totalList是总查询结果,minNo为totalList开始下标,maxNo为结束下标,i<=maxNo&&i<totalList.size() 后半句很关键,因为如果查询出来的结果条数不够20条,比如说只有5条,这时没有后半句限制的话,条件就是i<=19,循环二十次,然而totalList总共才五条数据,这时候就会报数组越界错误。