我有点不明白

Java狐狸 02-09-30

斑竹,你的《分页完美处理方法》写得很好,不过我不邮电部明白的是,如果用Iterator处理,就需要长时间的保持数据库连接,也就是需要为每一个作查询操作的用户保持一个连接,如果用户多怎么办? 还有就是告诉用户一共查询结果有多少页,如果不把全部数据取出,是不知道整个查询有多少条纪录的,你这被怎么解决?

banq
2002-09-30 11:11

不保持连接,使用连接池,每个iterator实际是以key ID一句查询语句。

仔细研究Jive 你会发现。实际返回new iterator之前,是查询出所有的ID集合。从这个ID集合再分别查ID.ID集合的大小就是所有记录。

Java狐狸
2002-09-30 12:58

那也就是说,其实每翻一次,也同样需要查询数据库一次对吧? 只是记录了上次的位置而已,那用Iterator由什么意义哪?
还有就是怎么得到全部结果的行数?

banq
2002-09-30 13:32

用频繁操作数据库的代价来换取内存的安全,不可能有两边都得便宜的方法阿。

全部结果的行数在jive中是通过ID集合,具体你研究一下Jive吧,各个系统可以有自己的做法,不必统一,取决你喜欢使用什么模式。