Middle
Kā ir uzbūvēta klase ResultSet Java?
sobes.tech AI
Atbilde no AI
ResultSet — tas ir interfeiss java.sql paketā, kas pārstāv SQL vaicājuma rezultātus. Tas nodrošina piekļuvi datiem pa posmiem (rinda pēc rindas).
Galvenie aspekti:
- Kurors:
ResultSetatbalsta kursora, kas norāda uz pašreizējo datu rindu. Sākotnēji kurors atrodas pirms pirmās rindas. - Navigācija: Lai pārvietotos ar kursora, izmanto tādus metodes kā
next(),previous(),first(),last().next()atgriežtrue, ja veiksmīgi pārvietojās uz nākamo rindu, unfalse, ja sasniedza rezultātu beigās. - Tipi: Ir dažādi
ResultSettipi ar dažādām navigācijas un datu atjaunošanas iespējām:TYPE_FORWARD_ONLY: Kurors pārvietojas tikai uz priekšu (visefektīvākais).TYPE_SCROLL_INSENSITIVE: Kurors var pārvietoties jebkurā virzienā, izmaiņas datu bāzē nav redzamas.TYPE_SCROLL_SENSITIVE: Kurors var pārvietoties jebkurā virzienā, izmaiņas ir redzamas (var būt lēnāks).
- Konkurence: Nosaka, vai ir atļauts mainīt datus caur
ResultSet:CONCUR_READ_ONLY: Tikai lasīšana.CONCUR_UPDATABLE: Lasīšana un rediģēšana.
- Datu iegūšana: Dati no pašreizējās rindas tiek iegūti ar
get<Type>()metodēm, piemēram,getString(int columnIndex),getInt(String columnLabel),getDate(int columnIndex). - Aizvēršana: Ir svarīgi aizvērt
ResultSetpēc lietošanas, lai atbrīvotu resursus, izmantojotclose()metodi. Parasti tas tiek darītsfinallyblokā vai ar try-with-resources.
Piemērs:
// Pieņemot, ka `connection` un `statement` jau ir inicializēti
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("Lietotāja ID: " + id + ", Vārds: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
ResultSet nesaglabā visus datus vienlaikus atmiņā, kas padara to efektīvu darbā ar lieliem datu apjomiem.