Jelenlegi hely

23.2.3 Lekérdezések eredményének feldolgozása

Nézzük meg, hogy az előző SQL parancsot hogyan lehet Javában futtatni, és hogyan lehet az eredményt kinyerni belőle.

A lekérdezést futtató executeQuery metódus egy ResultSet objektumot ad, amiből az adatokat kinyerhetjük.

ResultSet rs = stmt.executeQuery(
    "SELECT COF_NAME, PRICE FROM COFFEES");

A next metódus

Az eredményhalmaz elérhetővé tevő rs objektummal minden rekordon végig fogunk menni, hogy az egyes rekordok adatait meg tudjuk jeleníteni a képernyőn. A next metódus az úgynevezett a kurzort mindig a következő sorra mozgatja (ezt aktuális sornak hívjuk). Mivel a kurzor kezdetben még nem mutat egyetlen sorra sem (mintha a táblázat előtt lennénk), az első meghívása után érhető el az eredmény első sora. Egymást követő metódushívásokkal a kurzort a következő rekordokra léptetjük, így járjuk be a teljes halmazt.

A getXXX metódusok

A get kezdetű metódusok segítségével tudjuk az aktuális rekord egyes mezőit lekérdezni. Például az SQL VARCHAR típusú COF_NAME mezőjét a getString-el olvashatjuk ki. Az SQL FLOAT típusú PRICE mezője logikusan a getFloat metódussal kérdezhető le.

Nézzük a teljes kódot:

String query = "SELECT COF_NAME, PRICE FROM COFFEES";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
    String s = rs.getString("COF_NAME");
    float n = rs.getFloat("PRICE");
    System.out.println(s + "   " + n);
}

A kimeneten ehhez hasonló fog megjelenni:

Colombian   7.99
French_Roast   8.99
Espresso   9.99
Colombian_Decaf   8.99
French_Roast_Decaf   9.99

Paraméterként nem csak a mező nevét, hanem oszlopindexét is használhatjuk:

String s = rs.getString(1);
float n = rs.getFloat(2);