Sobes.tech
Middle

Java'da ResultSet sınıfı nasıl yapılandırılmıştır?

sobes.tech yapay zeka

AI'dan gelen yanıt

ResultSet, java.sql paketinde bulunan ve bir SQL sorgusunun sonuçlarını temsil eden bir arayüzdür. Verilere adım adım (satır satır) erişim sağlar.

Anahtar noktalar:

  • İmleç: ResultSet, geçerli veri satırını gösteren bir imleç destekler. Başlangıçta, imleç ilk satırdan önce konumlandırılmıştır.
  • Gezinme: İmleci hareket ettirmek için next(), previous(), first(), last() gibi yöntemler kullanılır. next() başarıyla bir sonraki satıra geçerse true, aksi takdirde false döner.
  • Türler: Farklı gezinme ve veri güncelleme özelliklerine sahip çeşitli ResultSet türleri vardır:
    • TYPE_FORWARD_ONLY: İmleç yalnızca ileriye doğru hareket eder (en verimli).
    • TYPE_SCROLL_INSENSITIVE: İmleç herhangi bir yönde hareket edebilir, temel verilerdeki değişiklikler yansıtılmaz.
    • TYPE_SCROLL_SENSITIVE: İmleç herhangi bir yönde hareket edebilir, temel verilerdeki değişiklikler yansıtılır (daha yavaş olabilir).
  • Eşzamanlılık: ResultSet aracılığıyla veri değiştirilebilirliği belirler:
    • CONCUR_READ_ONLY: Sadece okuma.
    • CONCUR_UPDATABLE: Okuma ve yazma.
  • Veri alma: Mevcut satırdaki veriler, get<Type>() metodlarıyla alınır, örneğin getString(int columnIndex), getInt(String columnLabel), getDate(int columnIndex).
  • Kapatma: Kullanımdan sonra ResultSet'i kapatmak önemlidir, böylece kaynaklar serbest bırakılır, close() metodu kullanılır. Bu genellikle finally bloğunda veya try-with-resources ile yapılır.

Kullanım örneği:

// connection ve statement'ın zaten başlatıldığını varsayıyoruz
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("Kullanıcı ID: " + id + ", İsim: " + name);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

ResultSet, büyük veri hacimleriyle çalışırken verilerin tamamını bellekte tutmaz, bu da onu verimli kılar.