Middle
Hogyan épül fel a ResultSet osztály Java-ban?
sobes.tech MI
Válasz az MI-től
A ResultSet a java.sql csomagban található interfész, amely az SQL lekérdezés eredményeit reprezentálja. Lehetővé teszi az adatok lépésenkénti (sorról sorra) hozzáférését.
Főbb jellemzők:
- Kurzor: A
ResultSettámogat egy kurzort, amely a jelenlegi adatsort mutatja. Kezdetben a kurzor a első sor előtt helyezkedik el. - Navigáció: A kurzor mozgatásához olyan metódusokat használunk, mint a
next(),previous(),first(),last(). Anext()akkor ad visszatrueértéket, ha sikeresen lépett a következő sorra, ésfalse, ha a eredmény vége felé ért. - Típusok: Különböző típusú
ResultSetlétezik, különböző navigációs és frissítési lehetőségekkel:TYPE_FORWARD_ONLY: A kurzor csak előre mozog (leghatékonyabb).TYPE_SCROLL_INSENSITIVE: A kurzor bármilyen irányba mozoghat, a változások nem tükröződnek.TYPE_SCROLL_SENSITIVE: A kurzor bármilyen irányba mozoghat, a változások tükröződnek (lassabb lehet).
- Konkurencia: Meghatározza, hogy lehet-e módosítani az adatokat a
ResultSet-en keresztül:CONCUR_READ_ONLY: Csak olvasás.CONCUR_UPDATABLE: Olvasás és írás.
- Adatok lekérése: A jelenlegi sor adatai a
get<Type>()metódusokkal nyerhetők ki, példáulgetString(int columnIndex),getInt(String columnLabel),getDate(int columnIndex). - Zárás: Fontos, hogy a
ResultSet-et lezárjuk használat után, hogy felszabadítsuk az erőforrásokat, aclose()metódussal. Általában ezt afinallyblokkban vagy try-with-resources segítségével tesszük.
Használati példa:
// Feltételezzük, hogy a connection és a statement már inicializálva van
try (ResultSet resultSet = statement.executeQuery("SELECT id, name FROM users")) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("Felhasználó azonosító: " + id + ", Név: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
A ResultSet nem tárolja az összes adatot a memóriában egyszerre, így hatékony nagy adatmennyiségek esetén.