Sterownik JDBC zgłasza wyjątek „ResultSet Closed” na pustym ResultSet

Mam problem ze sterownikiem JDBC dla SQLite.

Wykonuję zapytanie za pomocą instrukcji SELECT.

Jeśli dostanę pustyResultSet (0 wierszy), a następnie widzę wyjątek „Zamknięty zestaw wyników” zgłoszony podczas połączeniagetString(1).

Bez większego doświadczenia JDBC, moja teoria (której nie mogłem potwierdzić za pomocą JavaDocs dlaResultSet) czy to

getString(1) NIE działa na pustym (zero-wierszowym) zestawie wyników (według projektu lub z powodu błędu)ResultSet„otwarta” flaga jest ustawiona nafalse w zerowych rzędach (ponownie, według projektu lub błędu)

zobaczyłem toZgłoszenie błędu ale nie jestem pewien, czy jest to związane.

Moje zadania to:

Czy powyższa teoria jest poprawna?Czy to błąd? Cecha? (a jeśli tak, czy ktoś może wskazać dokumentację?)Czy jest to specyficzne dla JDBC SQLIte lub dla ogólnychResultSet we wszystkich sterownikach JDBC?Jaki jest właściwy sposób robienia takich rzeczy??

Dla # 4 moim rozwiązaniem było użycieisFirst() zadzwoń zaraz poexecuteQuery() sprawdzić, czy w zestawie wyników znajdują się jakieś wiersze. Czy to najlepsze podejście?

(Mógłbym także po prostu wybrać licznik insetad, ponieważ tak naprawdę nie potrzebowałem zestawu wyników, a jedynie flagę zero-zero, ale chcę wiedzieć, co zrobić, jeśli zależy mi na wynikach wyboru)

Dzięki!

questionAnswers(4)

yourAnswerToTheQuestion