AWWW-1st3.6-w09.tresc-1.0-Slajd7

From Studia Informatyczne

Przetwarzanie zbiorów wynikowych JDBC

Przetwarzanie zbiorów wynikowych JDBC


Do wykonywania zapytań SELECT służy metoda executeQuery() obiektu Statement. Metoda ta zwraca obiekt ResultSet, udostępniający tabelę wierszy wyniku zapytania. ResultSet utrzymuje kursor do nawigacji po wierszach wyniku i wymaga utrzymywania otwartego połączenia z bazą danych. Kursor startuje od pozycji przed pierwszym rekordem zbioru wynikowego i domyślnie jest jednokierunkowy. Od wersji JDBC 2.0 istnieje możliwość zwrócenia przez zapytanie obiektu ResultSet umożliwiającego swobodną nawigację po wierszach wyniku zapytania, a także modyfikację danych poprzez kursor.

Odczyt poszczególnych atrybutów bieżącego wiersza w kursorze jest realizowany metodami getXXX(), określającymi typ danych języka Java, do którego ma zostać skonwertowana wartość odczytana z bazy danych. Parametrem metod getXXX() jest nazwa kolumny lub pozycja wyrażenia w klauzuli SELECT zapytania.

Przykładowy fragment kodu na slajdzie odczytuje i wyświetla na konsoli nazwiska i płace pracowników. Znaczenie wyróżnionych fragmentów kodu jest następujące:

1. Wykonanie zapytania poprzez wywołanie metody executeQuery() na rzecz utworzonego wcześniej obiektu Statement. Metoda zwraca zbiór wynikowy ResultSet.

2. Kolejne wiersze pobierane są z obiektu ResultSet w pętli while. Na początku kursor znajduje się przed pierwszym wierszem wyniku napytania. Przejście do kolejnego wiersza jest realizowane metodą next(), zwracającą prawdę gdy znaleziono następny wiersz, a fałsz w przeciwnym wypadku. Gdy metoda next() zwróci fałsz nastąpi wyjście z pętli.

3. Odczyt nazwiska (pierwszego na liście wyrażeń SELECT) jako String i płacy (drugiej na liście wyrażeń SELECT) jako double.

4. Zamknięcie obiektu DataSet po przetworzeniu wyników zapytania. Ważne z punktu widzenia oszczędzania zasobów serwera, gdyż zwalnia kursor.


<< Poprzedni slajd | Spis treści | Następny slajd >>