Junior
Akú úlohu zohráva objekt ResultSet pri práci s databázami pomocou JDBC?
sobes.tech AI
Odpoveď od AI
Objekt ResultSet predstavuje tabuľkové zobrazenie údajov získaných ako výsledok vykonania SQL dotazu. Umožňuje iterovať cez riadky tohto výsledku a získavať hodnoty stĺpcov pre každý riadok.
Hlavné funkcie:
- Prístup k údajom: Umožňuje získavať hodnoty z polí (stĺpcov) aktuálneho riadku pomocou rôznych metód
get<TypDáta>()(napríkladgetInt(),getString(),getDate()). - Iterácia: Poskytuje metódy na pohyb po riadkoch výsledku (
next(),previous(),first(),last(),absolute()). - Informácie o metadátach: Prostredníctvom metódy
getMetaData()je možné získaťResultSetMetaData— objekt poskytujúci informácie o štruktúreResultSet, ako je počet stĺpcov, ich typy, názvy a pod. - Aktualizácia údajov: V závislosti od typu
ResultSeta možností ovládača môže podporovať metódy na aktualizáciu, vloženie alebo odstránenie riadkov priamo v výsledku dotazu (napríkladupdateRow(),insertRow(),deleteRow()).
Životný cyklus:
ResultSetje vytvorený po vykonaní SQL dotazu objektomStatementaleboPreparedStatement.- Naň sa odkazuje na spracovanie údajov.
- Po ukončení práce by mal byť
ResultSetzatvorený, aby sa uvoľnili zdroje databázy. To je možné urobiť explicitne metódouclose()alebo použitím try-with-resources.
// Príklad použitia ResultSet
import java.sql.*;
public class ResultSetExample {
public static void main(String[] args) {
String dbUrl = "jdbc:mysql://localhost:3306/mydatabase"; // URL databázy
String user = "myuser"; // Používateľ databázy
String password = "mypassword"; // Heslo používateľa
String sql = "SELECT id, name, age FROM employees"; // Príklad SQL SELECT dotazu
try (Connection conn = DriverManager.getConnection(dbUrl, user, password); // Nadviazanie spojenia
Statement stmt = conn.createStatement(); // Vytvorenie objektu Statement
ResultSet rs = stmt.executeQuery(sql)) { // Vykonanie dotazu a získanie ResultSet
// Iterácia cez riadky ResultSet
while (rs.next()) {
int id = rs.getInt("id"); // Získanie hodnoty z stĺpca "id"
String name = rs.getString("name"); // Získanie hodnoty z stĺpca "name"
int age = rs.getInt("age"); // Získanie hodnoty z stĺpca "age"
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); // Výpis údajov
}
} catch (SQLException e) {
e.printStackTrace(); // Spracovanie chýb
}
}
}