Expanding on Dave's answer:
When you make a
JDBC query call, the call sends a request to the database server to do work. Often the server does not return a response until the work is totally complete. Or at best, until enough work has been done to determine the results. And until the server response comes back, the JDBC query call cannot return control to the application logic. It's like doing a progress bar on web pages - the only 2 progress values are 0% and 100%.
You
can obviously get a count of records to be returned and manually count how many next() operations you have performed, but it's not going to be at all unusual for the server to take 5 minutes to return 3 records.