L>попробуй поиграть с setFetchSize у Connection или Statement. может помочь. Вот только щас нашел, что если установить fetchSize в Integer.MIN_VALUE и использовать флаги java.sql.ResultSet.TYPE_FORWARD_ONLY и java.sql.ResultSet.CONCUR_READ_ONLY, то mySQL создает streaming ResultSet, то есть не выбирает все записи из базы, а читает их по мере скроллирования курсора.
ИМХО можно resultSet.setFetchSize перед первым next.