ResultSet interface'i bir sorgudan dönen sonuçları içerir. Normal şartlar altında sonuçlar ilk satırdan başlayarak sırayla okunur ve gerekli işlemler yapılır. Şu anda üzerinde bulunduğumz satırı belirten kavrama veritabanları terminolojisinde 'Cursor' denir. Cursor normal şartlar altında sadece 'forward' (ileriye doğru) çalışır. Ayrıca ResultSet aksi belirtilmedikçe sadece read-only (salt okunur)'dur, update (güncelleme) yapılamaz. Üzerinde ileri geri harekete edilebilen ResultSet'lere 'scrollable' (gezinilebilir) denir. Güncellemye olanak tanıyan ResultSet'ler de updatable (güncellenebilir) denir.
Gezinilebilir (Scrollable) ResultSet
Bir Statement'in executeQuery() method'undan dönen ResultSet'in scrollabnle olması için Connection interface'inin createStatement() method'u uygun parametrelerle çağrılır :
ResulSet bu şekilde alındıktan sonra cursor'un konumu ResultSet'in çeşitli methodlarıyla değiştirlebilir. ResultSet'teki bazı gezinti methodları şunlardır :
previous()
Bir önceki satıra dön
next()
Bir sonraki satıra geç
first()
İlk satıra git
last()
Son satıra git
abslote(4)
4. satıra git
relative(4)
4 satır ileri (-4'se geri) git
BankAccount adında bir tablodan dönen sonuçlar içierisinde çeşitli scroll işlemleri yapan bir örnek :
ResultSet'in updatable olması için Connection'un createStatement() method'una parametre olarak ResultSet.CONCUR_UPDATABLE verilir. Result set için herhangi bir hücresini değiştirmek için updateString(), updateInt(), updateFloat() gibi methodlar kullanılır. Ancak bu method'larla değiştirlen verilerin veritabanında da geçerli olması için updateRow() method'u kulllanılır. Örnek :
Yeni bir satır eklemek için insertRow() method'u kullanılır. ResultSet'in en başına (ilk satırdan de öne) gitmek için beforFirst() methodu, en sona (son satırdan da sonraya) gitmek için de afterLast() methodu kullanılır. Örneğin :