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);