Datenbankverbindung (Java): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(MS SQL Server)
(MS SQL Server)
Zeile 107: Zeile 107:
 
<code=java>
 
<code=java>
 
//laden der Treiberklasse
 
//laden der Treiberklasse
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+
Class.forName("net.sourceforge.jtds.jdbc.Driver");
 
//zurückgeben der neuen verbindung
 
//zurückgeben der neuen verbindung
 
Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://<server>\\<instanz>;databaseName=<datenbank>","Benutzer","Passwort");
 
Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://<server>\\<instanz>;databaseName=<datenbank>","Benutzer","Passwort");

Version vom 20. November 2008, 16:33 Uhr

Da man in Programmen oft eine größere Menge an Daten verarbeiten und speichern will nimmt man dafür oftmals eine Datenbank um diese gut sortiert zu speichern. Um eine Datenbank mit Java zu verwenden muss man immer nach dem gleiche Schema vorgehen:

  1. Treiber laden
  2. Verbindung aufbauen
  3. Querys ausführen
  4. Verbindung schließen

Treiber laden

Die Treiber für die Datenbanken werden meistens direkt mit den Datenbanken mitgeliefert, da die Hersteller dies direkt als Support anbieten. Einen Unterschied machen die ODBC Datenbanken die man in Windows direkt integrieren kann, diese können mit den JDBC/ODBC Treiber von Java direkt verwendet werden, eine ODBC Datenbank ist z.B. eine Access Datenbank.

Access Datenbank

ODBC-Datenquellen-Administrator

Um die Verbindung zu einer Access Datenbank herzustellen muss man diese erstmal in Windows eingebunden haben, dies geschied über die Systemsteuerung <math>\rightarrow</math> Verwaltung <math>\rightarrow</math> Datenquellen (ODBC)hier muss die Datenbank jetzt eingerichtet werden.

Um diese jetzt in Java zu verwenden, muss wie anfangs schon erwähnt der Treiber geladen und die Verbindung aufgebaut werden. <code=java> //laden der Treiberklasse Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:odbc:Datenbankname","Benutzer","Passwort"); </code=java>

Es gibt allerdings auch eine Variante, bei der o.g. Registrierung der ODBC Datenquellen entfallen kann. Eine reale Methode zur Herstellung einer Verbindung kann so aussehen: <code=java>private static Connection con; [...]

public boolean connect(String filename, String user, String passwd)

  throws SQLException, ClassNotFoundException {
     
  String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
  url += filename.trim() + ";READONLY=false}";      
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  con = DriverManager.getConnection(url, user, passwd);
     
  return true;

}</code=java>

MySQL Datenbank

Um die Verbindung zu einer MySQL Datenbank herzustellen, muss diese auf einem erreichbaren Rechner laufen und sollte dieser Rechner nicht der gleiche sein wo auch das Programm ausgeführt wird muss der Benutzer auch die Rechte haben von außerhalb auf die Datenbank zu zugreifen. Um diese jetzt in Java zu verwenden, muss wie anfangs schon erwähnt der Treiber geladen und die Verbindung aufgebaut werden. <code=java> //laden der Treiberklasse Class.forName("com.mysql.jdbc.Driver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:mysql://Host:Port/Datenbank","Benutzer","Passwort"); </code=java> Die Portangabe muss man nicht machen solange der Server auf den standard MySQL Port 3306 läuft. Bei der Angabe der Datenbank wird automatisch diese Datenbank für den Gebrauch ausgewählt so das man diese nicht extra auswählen muss.

HSQLDB Datenbank

Um die Verbindung mit einer HSQLDB Datenbank aufzubauen hat man mehere Möglichkeiten da die Datenbank in verschiedenen Modi laufen kann, hier wird nur auf die Standalone Variante eingegangen. Wenn man diese Datenbank verwenden will muss man nichts im System einrichten oder installieren, es wird nur vorrausgesetzt das die hsqldb.jar im Classpath ist. <code=java> // laden des Datenbanktreibers Class.forName("org.hsqldb.jdbcDriver"); // Aufbauen der Verbindung zu der Datenbank Connection con = DriverManager.getConnection("jdbc:hsqldb:file:PfadzurDatenbank","Benutzer","Passwort"); </code=java> Der Pfad kann Realtiv oder auch Absolut angegeben werden, außerdem können danach verschiedene Optionen folgen. Der Benutzer ist standardmäßig sa und ein Passwort ist nicht vergeben.

Firebird Datenbank

Um die Verbindung zu einer Firebird Datenbank herzustellen muss der Server auf einem erreichbaren Rechner installiert sein. Damit man diese jetzt in Java zu verwenden kann, muss wie anfangs schon erwähnt der Treiber geladen und die Verbindung aufgebaut werden. <code=java> //laden der Treiberklasse Class.forName("org.firebirdsql.jdbc.FBDriver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:firebirdsql:HOST/PORT:PfadzuDatenbank","Benutzer","Passwort"); </code=java> Der Pfad zu der Datenbank muss immer Absolut angegeben werden damit die Datenbank gefunden wird.

H2 Database

Für die noch recht junge, aber sehr schnelle, in Java programmierte Datenbank H2 sieht der Code zum Aufbau der Verbindung zur Datenbank so aus: <code=java> Class.forName("org.h2.Driver"); Connection conn = DriverManager.getConnection("jdbc:h2:PfadzurDatenbank", "Benutzer", "Passwort"); </code=java>

PostgreSQL

Um die Verbindung zu einer Postgres Datenbank herzustellen, muss diese auf einem erreichbaren Rechner laufen und sollte dieser Rechner nicht der gleiche sein wo auch das Programm ausgeführt wird muss der Benutzer auch die Rechte haben von außerhalb auf die Datenbank zu zugreifen. Damit man diese jetzt in Java zu verwenden kann, muss wie anfangs schon erwähnt der Treiber geladen und die Verbindung aufgebaut werden. <code=java> //laden der Treiberklasse Class.forName("org.postgresql.Driver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:postgresql://HOST:PORT/Datenbank","Benutzer","Passwort"); </code=java> Optional lassen sich beim Verbindungsaufbau noch weitere Parameter angeben wie z.B. ob SSL verwendet werden soll.

Oracle

Um die Verbindung mit einer Oracle Datenbank herzustellen, muss diese auf einem erreichbaren Rechner laufen. <code=java> //laden der Treiberklasse Class.forName("oracle.jdbc.driver.OracleDriver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:oracle:thin:@<host>:<port>:<DB>","Benutzer","Passwort"); </code=java>

MS SQL Server

Um die Verbindung mit einer MS SQL Datenbank herzustellen, muss diese auf einem erreichbaren Rechner laufen. Man kann für alle Systeme den Unix Treiber verwenden den Microsoft anbietet. <code=java> //laden der Treiberklasse Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:sqlserver://<server>\\<instanz>;databaseName=<datenbank>","Benutzer","Passwort"); </code=java>

Wird der jTDS-Treiber verwendet muss der Connection-String anders aussehen: <code=java> //laden der Treiberklasse Class.forName("net.sourceforge.jtds.jdbc.Driver"); //zurückgeben der neuen verbindung Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://<server>\\<instanz>;databaseName=<datenbank>","Benutzer","Passwort"); </code=java>

Andere Datenbanken

Bei anderen Datenbanken läuft es genauso ab, nur muss man sich dann die Treibernamen aus den Handbüchern suchen sowie die Art wie der Pfad für die Datenbank angegeben werden soll.


Mit der zurückgegeben Connection kann man dann die Arbeiten mit der Datenbank beginnen.


Weblinks