Beispiel aus Schulungsunterlagen für Java


Java und Datenbanken - JDBC und SQL

<<  Index

Ziel von JDBC ist, Programmierern Datenbankzugang über Standard SQL-Kommandos (ANSI SQL92 ist als minimaler Standard garantiert) oder sogar über spezialisierte SQL-Kommandos zu ermöglichen, falls der JDBC-Treiber das zulässt. JDBC lässt sich von Anwendungen und Applets aus nutzen. Für Applets gelten die üblichen Sicherheitsbeschränkungen. Das JDBC-Interface zu SQL stellt das Package java.sql zur Verfügung.


Datenbankverbindung direkt über JDBC


Datenbankverbindung über ein Servlet oder eine EJB, diese Lösung ermöglicht Datenbankzugang für Applets

Nach dem Herstellen des Kontakts zur Datenbank können über ein Connection-Objekt Queries und Actions abgesetzt werden. Der JDBC-Treiber für die Datenbank muss im System installiert und über Systemvariablen auffindbar sein. Alternativ dazu kann ein Treiber auch direkt in die Anwendung geladen werden.

Ablauf einer Kontaktaufnahme zu einer Datenbank und eines SQL-Kommandos

Class.forName("org.postgresql.Driver");      // lade Datenbanktreiber für PostgreSQL

String url = "jdbc:postgresql://MeineDB";    // Datenbank - URL
Connection con = DriverManager.getConnection(url, username, password);  // DB verbinden

Statement stmt = con.createStatement();      // Statement-Objekt erzeugen

// Kommando-String zusammenstellen
String cmd = "UPDATE Element SET Wert = Wert + 5.00 WHERE Name NOT LIKE '%probe%'");
stmt.executeUpdate(cmd);                     // Kommando ausführen

SQL-Queries

Auch Abfragen werden über Statement - Objekte durchgeführt. Das Ergebnis steht in einem Objekt der Klasse ResultSet zur Verfügung.

Class.forName("org.postgresql.Driver");      // lade Datenbanktreiber für PostgreSQL

String url = "jdbc:postgresql://MeineDB";    // Datenbank - URL
Connection con = DriverManager.getConnection(url, username, password);  // DB verbinden

Statement stmt = con.createStatement();      // Statement-Objekt erzeugen
String cmd = "SELECT * FROM Element";        // SQL-Query-String zusammenstellen
ResultSet rs = stmt.executeQuery(cmd);       // Kommando ausführen

// Funktionsweise beim Iterieren entspricht nicht genau den Collection Iteratoren :-(
while (rs.next())  // Iterator über Ergebnis
{
  String cs = rs.getString("Name");          // lies Text in Spalte "Name"
  Time ct = rs.getTime(5);                   // lies Zeitfeld in Spalte 5
  ...
}

Ab JDBC 2 können über das ResultSet-Objekt auch Updates/Deletes/Inserts getätigt werden. Für die SQL-Datentypen sind entsprechende Java-Typen definiert:

SQL data type Java data type
INTEGER,INT int
SMALLINTshort
NUMERIC(m,n)/DECIMAL(m,n),DEC(m,n)java.sql.Numeric
FLOAT(n)double
REALfloat
CHARACTER(n),CHAR(n)String
VARCHARString
BOOLEANboolean
DATEjava.sql.Date
TIMEjava.sql.Time

Programm: Webdb.java

<<  Index


© by arxio GmbH, Januar 2003