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

Database Driver

Zoals in de vorige les vermeld, hebben we eerst en vooral een driver nodig zodat we JDBC kunnen laten koppelen met de juiste databank.

JDBC is hierin een tussenfactor die het mogelijk maakt om abstractie te maken tussen de twee systemen die we proberen te koppelen. Namelijk ons project en de databank.

De Driver is hierbij een programma dat de vertaling zal uitvoeren tussen onze Java aanvragen naar de databank en de SQL resultaten die uit de aanvraag voortkomt. Deze driver is dus en essentieel onderdeel van onze communicatie met de Databank. De driver is dan ook Databank Sepecifiek.

De Driver moet, om deze communicatie te kunnen opbouwen, worden geregistreerd in ons project. Zo wordt de juiste variant Driver ingeladen. Hiervoor is dee java.sql.DriverManager klasse verantwoordelijk. Deze klasse bezit heel wat statische methoden om een connectie op te bouwen aan de hand van Static Factory Methods.

Het is dan ook deze klasse die zal zorgen dat de juiste driver wordt aangesproken, en dat we deze ook later op een eenvoudige manier kunnen veranderen indien we onze databank zouden migreren naar een andere provider.

Dit schema toont de communicatie lijn die gevoerd wordt. Hierin zal onze applicatie contact zoeken met de databank over de JDBC klasse DriverManager die zelf de juiste driver oproept om de vertaling in goede banen te laten lopen.

Deze driver moeten worden geregistreerd aan de hand van een statische methode van DriverManager. Maar JDBC doet dit automatisch voor ons wanneer we de connectie met een databank aanvragen. Het enige dat voor onze rekening valt bij JDBC is het inladen van de Driver in onze code. Hiervoor gebruiken we een zijeffect van de methode forName van de klasse Class. Deze methode zal als bijeffect de nodige driver binnenladen en er een instantie van aanmaken in de eigen applicatie.

Dit inladen is ondertussen verouderd. Sinds JDBC 4.0 en JDK 6 gebeurt dit automatisch. Desondanks staat dit nog in heel veel code die je op het net kan terug vinden. Eveneens gebeurt deze automatische inlading niet wanneer we met webapplicaties werken. Hier zullen we dan nog handmatig een inlading moeten forceren. Dit gebeurt dan in de main methode van de applicatie en met volgende lijn code

Class.forName("org.mariadb.jdbc.Driver");

Dit is de specifieke lijn voor een MariaDB databank. In deze cursus zullen we ook nog de hsqldb tegen komen waarbij wee hetzelfde kunnen doen. Voor de specifieke klassen van de driver voor een andere DB kan je de documentatie van die databank raadpleegen.