De Driver is nu ingeladen en klaar voor gebruik. Maar hoe maken we verder een connectie?
Dit gebeurt via het resultaat van de DriverManager.getConnection(url, login, psw) : Connection methode. Deze methode neemt een aantal argumenten aan om zo een connectie op te bouwen. We halen hieronder even de verschillende aspecten uit elkaar en verklaren deze even nader.
DriverManager. Deze klasse staat in voor het los gekoppelde beheer van databanken en bezit een aantal static factory methods om dit doel te bekomen.
getConnection(). is een static factory method die een object creëert die een Connectie is. Deze methode heeft een aantal parameters nodig om de juiste driver in te laden, de juiste databank aan te spreken, …
url. Deze Parameter van dee factory method bestaat uit drie delen.
Eerst en vooral de vermelding dat we JDBC gebruiken en de driver langs deze weg gaan aanspreken.
Als tweede instantie halen we hier het subprotocol aan. Dit is de specifieke driver die nodig is voor onze databank die we gebruiken. Met deze vermelding weet de fabriek methode welke soort instantie hij zal moeten voorzien en welke driver precies te gebruiken.
Het laatste argument is de subname. Dit is de vermelding naar de specifieke databank die gebruikt zal worden en waar dus connectie mee moet gemaakt worden.
login. Dit is de login naam voor de databank die zal worden gebruikt. Dit is de gerigistreerde username op de SQL Server.
psw. Het wachtwoord voor de databank die zal worden gebruikt.Dit is het geregistreerd wachtwoord die bij de bovenstaande gebruikers hoort en gedefinieerd staat op de SQL Server.
Connection. Dit is een interface waarvan we een object terug krijgen. Dit object is van een concreet systeem die specifiek is opgebouwd om met onze databank om te gaan. Deze wordt door de fabriek methode klaargemaakt en terug gegeven volgens de Connection Interface. Op die manier is er geen specifieke instantie nodig en kunnen we op een later tijdstip altijd veranderen van Databank systeem zonder code te moeten aanpassen. Deze instantie bestaat natuurlijk wel, maar we hebben geen kennis genomen in het systeem van deze instantie. De interface biedt ons alles wat wee nodig hebben. Pure Loose Coupling een IoC.
Deze Interface erft ook over van AutoCloseable. Dus we kunnen deze gebruiken in een try with resources. Dit is belangrijk want een Connection object gebruikt veel resources. En we willen niet dat deze niet worden opgeruimd als we die niet mere nodig hebben. Op een later tijdstip gaan we hier een singleton voor maken die dit allemaal zal regelen voor ons.
Door deze code te gebruiken hebben we nu een Connectie kunnen maken met onze databank via Java code. En we kunnen aan de slag gaan met de gegevens die de DB bevat.
Connection connection = DriverManager.getConnection(
"jdbc:mariadb://javadev-training.be/javadevt_Lf001",
"javadevt_StudLf",
"STUDENTlf2020"
);
Deze methode zal en exception smijten als de connectie niet is gelukt. Je kan zelf in de documentatie eens gaan kijken welke Exception dit zal zijn en welke methoden er nog zijn bij deze klassen.