Sobes.tech
Middle

Java-da ResultSet sinfi necə qurulub?

sobes.tech Süni İntellekt

AI-dan cavab

ResultSetjava.sql paketində olan və SQL sorğusunun nəticələrini təmsil edən interfeysdir. O, məlumatlara mərhələli (sətir-sətir) giriş imkanı verir.

Əsas aspektlər:

  • İmleç: ResultSet imleci dəstəkləyir, hansı ki, hazırkı məlumat sətirini göstərir. Əvvəlcə, imleç ilk sətirdən əvvəl yerləşir.
  • Naviqasiya: İmleci hərəkət etdirmək üçün next(), previous(), first(), last() kimi metodlardan istifadə olunur. next() uğurla növbəti sətirə keçərsə, true qaytarır, əks halda false (nəticənin sonuna çatıb).
  • Növlər: Müxtəlif naviqasiya və məlumatların yenilənməsi imkanlarına malik ResultSet növləri mövcuddur:
    • TYPE_FORWARD_ONLY: İmleç yalnız irəliyə hərəkət edir (ən səmərəli).
    • TYPE_SCROLL_INSENSITIVE: İmleç istənilən istiqamətdə hərəkət edə bilər, bazadakı dəyişikliklər əks olunmur.
    • TYPE_SCROLL_SENSITIVE: İmleç istənilən istiqamətdə hərəkət edə bilər, bazadakı dəyişikliklər əks olunur (daha yavaş ola bilər).
  • Əməkdaşlıq: ResultSet vasitəsilə məlumatların dəyişdirilməsi mümkündür:
    • CONCUR_READ_ONLY: Yalnız oxumaq.
    • CONCUR_UPDATABLE: Oxuma və yazma.
  • Məlumatların alınması: Mövcud sətirdən məlumatlar get<Type>() metodları ilə alınır, məsələn, getString(int columnIndex), getInt(String columnLabel), getDate(int columnIndex).
  • Bağlama: ResultSet istifadə edildikdən sonra bağlamaq vacibdir ki, resurslar sərbəst buraxılsın, close() metodu ilə. Bu adətən finally blokunda və ya try-with-resources ilə edilir.

İstifadə nümunəsi:

// connection və statement artıq ilkinləşdirilmiş sayılır
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("İstifadəçi ID-si: " + id + ", Adı: " + name);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

ResultSet bütün məlumatları yaddaşda eyni zamanda saxlamır, bu onu böyük həcmli məlumatlarla işləmək üçün səmərəli edir.