Wikipedia · einfach zusammengefasst · Stand
Java Database Connectivity
Zu den Aufgaben von JDBC gehört es, Datenbankverbindungen aufzubauen und zu verwalten, SQL-Anfragen an die Datenbank weiterzuleiten und die Ergebnisse in eine …
Inhalt5 Abschnitte
Aufgabe und Bedeutung von JDBC
Java Database Connectivity (JDBC) ist eine Datenbankschnittstelle der Java-Plattform. Sie stellt Java-Programmen eine einheitliche Schnittstelle für Datenbanken verschiedener Hersteller bereit und ist besonders auf relationale Datenbanken ausgerichtet. Als universelle Datenbankschnittstelle ist JDBC mit ODBC unter Windows oder DBI unter Perl vergleichbar.
JDBC baut Datenbankverbindungen auf und verwaltet sie, leitet SQL-Anfragen an die Datenbank weiter und wandelt die Ergebnisse in eine für Java nutzbare Form um. Anschließend stellt es diese Ergebnisse dem Java-Programm zur Verfügung.
Für jedes konkrete Datenbanksystem wird ein eigener Treiber benötigt. Ein solcher Treiber implementiert die JDBC-Spezifikation und wird meist vom Hersteller des Datenbanksystems bereitgestellt.
Einordnung und Versionen
JDBC gehört seit JDK 1.1 zur Java Standard Edition. Seine Klassen befinden sich in den Java-Paketen java.sql und javax.sql. Seit JDBC 3.0 wird die Schnittstelle im Rahmen des Java Community Processes weiterentwickelt. JSR 221 bezeichnet die Spezifikation von JDBC 4.0. Die im Artikel angegebene aktuelle Version ist JDBC 4.3 vom 21. September 2017; sie ist Bestandteil von Java SE 9.
Die vier Treiberarten
Die JDBC-Spezifikation unterscheidet vier Arten von Treibern. Sie unterscheiden sich vor allem darin, wie JDBC-Befehle in Befehle für das Datenbankmanagementsystem (DBMS) übersetzt und zur Datenbank übertragen werden. Manche Treiber benötigen zusätzliche lokale Bibliotheken oder eine Vermittlungsschicht, während andere direkt mit dem Datenbankserver kommunizieren.
Treiber mit lokaler Vermittlung
Ein Typ-1-Treiber arbeitet ausschließlich über eine JDBC-ODBC-Bridge. Diese Brücke übersetzt JDBC-Anfragen in ODBC-Anfragen. Deshalb muss auf dem System zusätzlich ein passender ODBC-Treiber installiert sein. Typ 1 wurde verwendet, wenn für eine Datenbank zwar ein ODBC-Treiber, aber kein eigenständiger JDBC-Treiber vorhanden war. Eine bekannte JDBC-ODBC-Bridge wurde von Oracle vertrieben. Mit Java 9 wurde die Unterstützung für Typ-1-Treiber eingestellt.
Ein Typ-2-Treiber kommuniziert über eine plattformspezifische Programmbibliothek auf dem Client mit dem Datenbankserver. Daher wird für jede Betriebssystem-Plattform zusätzlich eine passende Bibliothek benötigt.
Netzwerkbasierte Treiber
Ein Typ-3-Treiber übersetzt die Befehle der JDBC-API zunächst in allgemeine DBMS-Befehle. Diese werden über ein Netzwerkprotokoll an einen Middleware-Treiber auf einem Anwendungsserver gesendet. Middleware ist hier eine vermittelnde Softwareschicht. Der Anwendungsserver wandelt die Befehle anschließend für den jeweiligen Datenbankserver um und leitet sie weiter. Der Typ-3-Treiber benötigt keine plattformspezifischen Bibliotheken und muss das konkrete Datenbanksystem nicht kennen. Er eignet sich besonders für Internet-Protokolle im Zusammenhang mit Firewalls.
Ein Typ-4-Treiber übersetzt JDBC-API-Befehle direkt in die DBMS-Befehle des jeweiligen Datenbankservers und sendet sie über ein Netzwerkprotokoll unmittelbar an diesen. Eine Middleware ist nicht erforderlich. Dadurch kann Typ 4 schneller als Typ 3 sein, ist jedoch weniger flexibel. Typ-4-Treiber eignen sich besonders für Intranet-Lösungen, die schnelle Netzwerkprotokolle verwenden sollen.