Middle
Kako je struktuisana klasa ResultSet u Javi?
sobes.tech АИ
Одговор од АИ
ResultSet je interfejs u paketu java.sql, koji predstavlja rezultate izvršenja SQL upita. Omogućava pristup podacima korak po korak (red po red).
Ključni aspekti:
- Kursor:
ResultSetpodržava kursor koji ukazuje na trenutni red podataka. U početku, kursor je postavljen pre prvog reda. - Navigacija: Za pomeranje kursora koriste se metode poput
next(),previous(),first(),last().next()vraćatrueako je uspešno pomerio kursor na sledeći red, afalseako je dostignut kraj rezultata. - Tipovi: Postoje različiti tipovi
ResultSetsa različitim mogućnostima navigacije i ažuriranja podataka:TYPE_FORWARD_ONLY: Kursor se pomera samo unapred (najefikasnije).TYPE_SCROLL_INSENSITIVE: Kursor može da se pomera u bilo kom pravcu, promene u bazi podataka se ne odražavaju.TYPE_SCROLL_SENSITIVE: Kursor može da se pomera u bilo kom pravcu, promene u bazi podataka se odražavaju (može biti sporije).
- Konkurentnost: Određuje da li je moguće menjati podatke putem
ResultSet:CONCUR_READ_ONLY: Samo za čitanje.CONCUR_UPDATABLE: Za čitanje i pisanje.
- Dobijanje podataka: Podaci iz trenutnog reda se izvlače pomoću metoda kao što su
get<Type>(), na primer,getString(int columnIndex),getInt(String columnLabel),getDate(int columnIndex). - Zatvaranje: Važno je zatvoriti
ResultSetnakon korišćenja, kako bi se oslobodili resursi, koristeći metoduclose(). Obično se to radi ufinallybloku ili sa try-with-resources.
Primer upotrebe:
// Pretpostavlja se da su connection i statement već inicijalizovani
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("ID korisnika: " + id + ", Ime: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
ResultSet ne čuva sve podatke u memoriji odjednom, što ga čini efikasnim pri radu sa velikim obimima podataka.