Middle
Hoe is de klasse ResultSet in Java opgebouwd?
sobes.tech AI
Antwoord van AI
ResultSet is een interface in het pakket java.sql, dat de resultaten van het uitvoeren van een SQL-query vertegenwoordigt. Het biedt stapsgewijs toegang tot de gegevens (rij voor rij).
Belangrijke aspecten:
- Cursor:
ResultSetondersteunt een cursor die wijst naar de huidige gegevensrij. Aanvankelijk staat de cursor vóór de eerste rij. - Navigatie: Om de cursor te verplaatsen, worden methoden zoals
next(),previous(),first(),last()gebruikt.next()geefttrueterug als de cursor succesvol naar de volgende rij is verplaatst, enfalseals het einde van het resultaat is bereikt. - Types: Er zijn verschillende types
ResultSetmet verschillende navigatie- en update-mogelijkheden:TYPE_FORWARD_ONLY: De cursor beweegt alleen vooruit (meest efficiënt).TYPE_SCROLL_INSENSITIVE: De cursor kan in elke richting bewegen, wijzigingen in de database worden niet weergegeven.TYPE_SCROLL_SENSITIVE: De cursor kan in elke richting bewegen, wijzigingen in de database worden weergegeven (kan langzamer zijn).
- Concurreren: Bepaalt of gegevens via
ResultSetkunnen worden gewijzigd:CONCUR_READ_ONLY: Alleen lezen.CONCUR_UPDATABLE: Lezen en schrijven.
- Gegevens ophalen: Gegevens uit de huidige rij worden opgehaald met methoden zoals
get<Type>(), bijvoorbeeldgetString(int columnIndex),getInt(String columnLabel),getDate(int columnIndex). - Sluiten: Het is belangrijk om
ResultSetna gebruik te sluiten om bronnen vrij te maken, met de methodeclose(). Dit wordt meestal gedaan in eenfinally-blok of met try-with-resources.
Voorbeeld van gebruik:
// Er wordt aangenomen dat connection en statement al geïnitialiseerd zijn
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("Gebruiker ID: " + id + ", Naam: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
ResultSet slaat niet alle gegevens gelijktijdig in het geheugen op, wat het efficiënt maakt bij werken met grote hoeveelheden data.