Sobes.tech
Junior

Mi a szerepe a ResultSet objektumnak az adatbázisokkal való munkában JDBC használatakor?

sobes.tech MI

Válasz az MI-től

ResultSet objektum egy táblázatos nézetet képvisel az adatokból, amelyeket egy SQL lekérdezés eredményeként kapunk. Lehetővé teszi, hogy iteráljunk ezen eredmény sorai között, és lekérjük az oszlopértékeket minden sorhoz.

Fő funkciók:

  • Adatokhoz való hozzáférés: Lehetővé teszi a jelenlegi sor (oszlopok) értékeinek lekérését különböző get<adatTípus>() metódusokkal (pl. getInt(), getString(), getDate()).
  • Iteráció: Metódusokat biztosít az eredmény sorai között való navigáláshoz (next(), previous(), first(), last(), absolute()).
  • Metaadatok információi: A getMetaData() metódus segítségével lekérhető a ResultSetMetaData, amely információkat nyújt a ResultSet szerkezetéről, például oszlopok száma, típusai, nevei stb.
  • Adatok frissítése: A ResultSet típusától és a driver képességeitől függően támogatott lehet a sorok közvetlen frissítése, beszúrása vagy törlése (updateRow(), insertRow(), deleteRow()).

Életciklus:

  1. A ResultSet létrejön, miután egy SQL lekérdezést végrehajtottunk egy Statement vagy PreparedStatement objektummal.
  2. Az adatok feldolgozására használjuk.
  3. A művelet befejezése után a ResultSet-et zárni kell, hogy felszabadítsuk az adatbázis erőforrásait. Ezt explicit módon a close() metódussal vagy try-with-resources segítségével lehet megtenni.
// Példa a ResultSet használatára
import java.sql.*;

public class ResultSetExample {

    public static void main(String[] args) {
        String dbUrl = "jdbc:mysql://localhost:3306/mydatabase"; // Az adatbázis URL-je
        String user = "myuser"; // Az adatbázis felhasználója
        String password = "mypassword"; // A felhasználó jelszava

        String sql = "SELECT id, name, age FROM employees"; // Példa SQL SELECT lekérdezés

        try (Connection conn = DriverManager.getConnection(dbUrl, user, password); // Kapcsolat létrehozása
             Statement stmt = conn.createStatement(); // Statement objektum létrehozása
             ResultSet rs = stmt.executeQuery(sql)) { // Lekérdezés végrehajtása és ResultSet lekérése

            // Iterálás a ResultSet sorain
            while (rs.next()) {
                int id = rs.getInt("id"); // Az "id" oszlop értékének lekérése
                String name = rs.getString("name"); // A "name" oszlop értékének lekérése
                int age = rs.getInt("age"); // Az "age" oszlop értékének lekérése

                System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); // Adatok kiírása
            }

        } catch (SQLException e) {
            e.printStackTrace(); // Hibakezelés
        }
    }
}