第一页:
1.从数据库按时间倒序取出数据,
假设数据为(为表示方便,仅仅显示时间):
15:26
14:26
13:26
2.再倒序加入list,此时list中的数据为
13:26
14:26
15:26
3.该list添加之前的list成为新的list
第一页,之前的list为空的,所以操作后新的list的数据为:
13:26
14:26
15:26
第二页:
1.从数据库按时间倒序取出数据,
假设数据为(为表示方便,仅仅显示时间):
12:26
11:26
10:26
2.再倒序加入list,此时list中的数据为10:26
11:26
12:26
3.该list添加之前的list成为新的list
10:26
11:26
12:26
13:26
14:26
15:26
抽象成算法如下:
//listAll 用来记录之前的list
ArrayList<E> listAll = new ArrayList<E>();
//获得list
List<E> list=getMsgByPage(pageCount,offset);
//反转
Collections.reverse(list);
//加入之前的list
list.addAll(listAll );
//当前的list赋值给listall
listall=list;
分页加载的sql:
假设一页加载三个,则第一页为:
select * from immsg where text="3423" order by dialogId limit 3 offset 0;
第二页为:
select * from immsg where text="3423" order by dialogId limit 3 offset 3;
第三页为:
select * from immsg where text="3423" order by dialogId limit 3 offset 6;
抽象出来为:
int pagecount=3;//每页的数量
int page;//第几页
select * from immsg where text="3423" order by dialogId limit pagecount offset (page-1)*pagecount ;