Rijen toevoegen via Resultset

Net als bij aanpassingen aan de ResultSet, kunnen we makkelijk nieuwe gegevens toevoegen aan de ResultSet.

Hierbij kunnen we gebruik maken van een speciale rij in een UPDATABLE ResultSet. Deze heet de ………. InsertRow, of invoegrij. Deze rij kunnen we benaderen met de methode moveToInsertRow() van de klasse ResultSet. Eenmaal we onze cursor op deze rij hebben geplaatst kunnen de de attributen van het entiteit gaan invullen met de updateXXX() methode en opslaan met de methode insertRow().

Eenmaal deze eerste rij is toegevoegd, kan een tweede, derde, vierde, … rij worden toegevoegd. Je blijft automatisch op de invoeg rij staan.

Indien je de cursor terug wilt verplaatsen naar de huidige positie binnen de ResultSet, dan kan dit door de methode moveToCurrentRow() te gebruiken van ResultSet.

ALERT!
Indien een veld leeg gelaten wordt, maar de databank vereist een invulling (NOT NULL). Dan zal er een SQLException worden gegenereerd.

Om een rij dus toe te voegen kunnen we de volgende code gaan gebruiken

String sql = "SELECT * FROM BEERS;";

try (
   JdbcFacade jdbcHelper = new JdbcFacade();
   ResultSet result = jdbcHelper.executeQueryNavigableUpdatable(sql);
   ) {
   
   result.moveToInsertRow();
   result.updateString("Name", "Java Beer");
   result.updateDouble("Alcohol", 12);
   result.updateDouble("Price", 3);
   result.updateInt("BrewerId", 22);
   result.updateInt("CategoryId", 33);
   result.insertRow();
   result.moveToCurrentRow();
   String name = result.getString("Name");
   System.out.println(name);
   
}

Als laatste kan je ook een rij verwijderen. Hiervoor plaats je de cursor op de te verplaatsen rij en je verwijderd deze met de methode deleteRow() van de ResultSet.