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.


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.
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
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 |
| SMALLINT | short |
| NUMERIC(m,n)/DECIMAL(m,n),DEC(m,n) | java.sql.Numeric |
| FLOAT(n) | double |
| REAL | float |
| CHARACTER(n),CHAR(n) | String |
| VARCHAR | String |
| BOOLEAN | boolean |
| DATE | java.sql.Date |
| TIME | java.sql.Time |