拜求高手:jdbc读取大量数据,怎么批量读取

拜求高手:jdbc读取大量数据,如何批量读取?
如果一个select   *   from   xxx   语句返回结果是上亿   甚至还多,多到用jdbc读到内存中就会内存益出的程度,大家有没有什么高见可以批量的读?   要能通用,不要局限于某种数据库。
还有,我想问大家一下,resultSet   =   statement.execut( "select   *   from   xx ");
此时已经把上亿的数据放入resultSet里了吗?   如果是,那就是说   已经放入内存里了   ?

------解决方案--------------------
select * from xxx
where rownum> a and rowum <b
a和b是每一页的数据数量
翻页时a,b递增或者递减就是
------解决方案--------------------
可以先用这个方法setFetchSize(),然后getFetchSize(),有一定的优化.

------解决方案--------------------
索引不是就是用来解决这个问题的吗?
每种数据库都有索引吧 ?