Saying Hello
Introductie
Gegevens Opvragen
Gegevens Aanpassen
Geavanceerde Onderwerpen
Los gekoppelde systemen
Eind Opdracht:Sweet Kitty Shop
Saying Goodbye

Type Omzetting

Nu we weten hoe we over de gegevens kunnen navigeren, is het tijd om de gegevens te gaan opvragen. Hierbij komen de methoden getXXX() aan de bak. Deze methoden halen gegevens uit een bepaalde kolom en kijken naar het datatype van het SQL Attribuut en wel datatype we in Java verwachten.

De XXX is dan ook het verwachte Java datatype. Op deze manier zal JDBC zijn Driver weten wat met het attribuut aan te vangen en omzetten naar het juiste Java datatype. Het is de Driver die deze vertaling maakt.

We geven hieronder een overzicht van de verschillende Java Datatypen (links) en de SQL datatypen (bovenaan) en welke vormen compatibel zijn met elkaar. De meest aangewezen omzetting is telkens in het donker grijs aangeduid.

JDBC – Noël Vaes

Deze methoden bestaan ook telkens weer in een overload vorm.

getXXX(String name). Deze variant zal de naam van de kolom uit de databank nemen als argument. Op deze manier zal in de huidige rij gezocht worden naar het attribuut met deze naam en de invulling daarvan omzetten naar het datatype die de methode als XXX heeft gedefinieerd. Dit is iets zwaarder voor het geheugen, omdat de Driver een specifieke zoektocht moet doen, maar zo hoef je de interne structuur van de databank minder te kennen.

getXXX(int index). Deze variant zal de kolom-index (startend vanaf 1) van de tabellen als argument nemen. Dit is een heel snelle manier maar je hebt kennis van de databank en zijn interne volgorde nodig om hier goed gebruik van te kunnen maken.

De code kan dan als volgt zijn voor de bieren.

Met de String parameter :

while (result.next()) {
   String beerName = result.getString("Name");
   double alcohol = result.getDouble("Alcohol");
   double price = result.getDouble("Price");
   System.out.printf("%s %.2f %.2f%n", beerName, alcohol, price)
}

Met de Index parameter :

while (result.next()) {
   String beerName = result.getString(1);
   double alcohol = result.getDouble(2);
   double price = result.getDouble(3);
   System.out.printf("%s %.2f %.2f%n", beerName, alcohol, price)
}