板桥大哥,关于您在本期程序员上的大作.

拜读了您在本期程序员杂志上发表的大作,很受启发.

把数据集每页作为一个Block,的确是种好办法,但看完之后还是觉得不太明白,把每页结果集做为一个block,这个处理过程是在SQL查询中做到的吗?
还是在获取全部数据后再做block,那做出的block存放在哪?

我现在很为实现一个高效又可复用的分页系统发愁,希望你能详细讲讲.

谢谢!

我没bang那么高的水平,但我说说我的理解。

数据集每页并没有作为一个Block,而是一个Block中的一个,block的默认大小为200,如果每页显示10条主题,那么它包括了20页的主题。

Block中保存的是符合查询语句条件的主题或者贴子的ID号码。


for (int i = 0; i < blockStart; i++) {
rs.next();
}
// Keep reading results until the result set is exaughsted or
// we come to the end of the block.
int count = 0;
while (rs.next() && count < THREAD_BLOCK_SIZE) {
threadsList.add(rs.getLong(1));
count++;
}

确实是通过SQL语句的得到的,因为产生了rs嘛,接着将这些ID号交给jive实现的一个迭代器,通过ID号查询每条内容。