Donnerstag, 24. Mai 2012


Artikel

Juli 2010 | Artikel

MySQL und Java: JDBC einrichten Fortsetzung, Teil 4

Teil 1   Teil 2   Teil 3   Teil 4   

Der JDBC-URL beinhaltet alle wichtigen Informationen, die benötigt werden, um eine Datenbankverbindung aufzubauen. Dabei sieht das Muster folgendermaßen aus:

  1. 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.
    PropertyNamePropertyValue
    ?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:

  1. 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:

  1. 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.

Christian Barthel macht eine Ausbildung zum Informatikkaufmann. Neben den Themen der Programmierung mit Java beschäftigt er sich ebenfalls mit Linux, Perl und infrastrukturellen Themen wie z. B. Backup, Dokumentmanagement mit Alfresco und Virtualisierung mit KVM, Xen und VMware. Durch seine Offenheit steht er sehr gerne mit anderen Menschen in Kontakt und tauscht Wissen über seine Interessensgebiete aus: christian.barthel@online.de

Teil 1   Teil 2   Teil 3   Teil 4   

andere Artikel dieser Serie

Kommentare