Der JDBC-URL beinhaltet alle wichtigen Informationen, die benötigt werden, um eine Datenbankverbindung aufzubauen. Dabei sieht das Muster folgendermaßen aus:
jdbc:db://[host][,failoverhost…][:port]/[database][?propertyName1][=propertyValue1][&propertyName2]...
- "jdbc:": Den Beginn macht JDBC, da es sich um 99 % der Fälle um einen Java Database Connectivity Driver handelt.
- "db:": Hier folgt die Datenbank:
- MySQL (jdbc:mysql:)
- PostgreSQL (jdbc:postgresql:)
- Microsoft SQL Server (jdbc:Microsoft:sqlserver:)
- "//[host]": Als Nächstes folgt der Hostname oder die IP-Adresse. Theoretisch wäre es auch möglich, mehrere Hosts anzugeben, da im Fall einer Downtime des DB-Servers der nächste DB-Server kontaktiert wird. Allerdings nicht praxisüblich, da meist die Datenbank-Serverredundanz durch ein Cluster dargestellt wird. Es wird also hier nur ein Datenbankcluster als Host angegeben, der wiederum im Hintergrund mehrere Datenbankserver beinhaltet (aber nur zur Info)
- ":port": Die Port-Adresse (jeder Serversocket wird über eine IP-Adresse und einem Port adressiert). Dabei legt JDBC bereits Standardports fest:
- MySQL: 3306
- PostgreSQL: 5432
- Microsoft SQL Server: 1433
Sollte Ihr Datenbankserver einen vom Standard abweichenden Port verweden, so müssen Sie dies mit der Portdirektive angeben, z. B.: "jdbc:mysql://servername:11111".
- "/database": Hier folgt die gewünschte Datenbank (wird auch von uns als Parameter in der Methode verlangt. Wollen wir beispielsweise die Datenbank kundenverwaltung von einem MySQL-Datenbankserver verwenden, so lautet der String wie folgt: jdbc:mysql://servername:3306/kundenverwaltung
- "?propertyName": Nun können beliebig viele Zusatzeigenschaften gesetzt werden. Jede Zusatzfunktionalität besitzt einen Namen und einen Wert.
PropertyName PropertyValue ?user = Benutzername ?pass = Passwort ?charSet = LATIN1 - "=propertyValue": Die Werte einer Zusatzeigenschaft werden mittels "=" zugewiesen. ?user=root ?password=superGeheim24 ?charSet=LATIN!
- "&propertyNameN": Wollen Sie mehrere Eigenschaften mit angeben, so müssen Sie ein "&"-Symbol verwenden. Hier ist der Aufbau äquivalent: propertyName=wert …servername:11111/database/?user=root&password=superGeheim
Für unsere Datenbankverbindung setzen wir nun den JDBC-URL wie folgt zusammen:
jdbc:mysql://“+host+“/“+database+“?user=”+user+”&password=”+passwd;
Die Parameter host, database, user und passwd werden also in den String so eingabaut, dass am Ende ein korrekter JDBC-URL entsteht.
Rufen wir die Methode beispielsweise mit dem Hostnamen dbserver, der Datenbank kundenverwaltung, dem Benutzer root (Datenbankadministrator) und dem Passwort superGeheim auf, so ensteht folgender URL:
jdbc:mysql://dbserver/kundenverwaltung?user=root&password=superGeheim;
Im nächsten Schritt weisen wir nun der Instanzvariable "connection" die Verbindung hinzu. Dafür eignet sich die statische Methode getConnection, die mit dem JDBC-URL aufgerufen werden muss, aus der Klasse DriverManager.
Nun beinhaltet die Instanzvariable unsere Verbindung und wir können diese Verbindung nutzen, um unsere Anfragen an den Datenbankserver zu stellen.




