Java Database Connectivity
Java Database Connectivity | |
---|---|
Basisdaten
| |
Entwickler | Sun Microsystems |
Aktuelle Version | 4.3[1] (21. September 2017[2]) |
Betriebssystem | Java |
Programmiersprache | Java |
Kategorie | Programmierschnittstelle |
Lizenz | GNU General Public License/Java Community Process |
oracle.com |
Java Database Connectivity (JDBC, englisch für Java Datenbankverbindungsfähigkeit) ist eine Datenbankschnittstelle der Java-Plattform, die eine einheitliche Schnittstelle zu Datenbanken verschiedener Hersteller bietet und speziell auf relationale Datenbanken ausgerichtet ist.
JDBC ist in seiner Funktion als universelle Datenbankschnittstelle vergleichbar mit z. B. ODBC unter Windows oder DBI unter Perl.
Zu den Aufgaben von JDBC gehört es, Datenbankverbindungen aufzubauen und zu verwalten, SQL-Anfragen an die Datenbank weiterzuleiten und die Ergebnisse in eine für Java nutzbare Form umzuwandeln und dem Programm zur Verfügung zu stellen.
Für jede spezifische Datenbank sind eigene Treiber erforderlich, die die JDBC-Spezifikation implementieren. Diese Treiber werden meist vom Hersteller des Datenbank-Systems geliefert.
JDBC ist Teil der Java Standard Edition seit JDK 1.1. Die JDBC-Klassen liegen in den Java packages java.sql
und javax.sql
. Seit JDBC 3.0 wird JDBC im Rahmen des Java Community Processes weiterentwickelt. JSR 221 ist die Spezifikation der Version JDBC 4.0; aktuell 4.3 (Teil von Java SE 9).[3]
Typen von JDBC-Treibern
[Bearbeiten | Quelltext bearbeiten]In der JDBC-Spezifikation werden verschiedene Typen von JDBC-Treibern unterschieden.
Typ-1-Treiber
[Bearbeiten | Quelltext bearbeiten]Ein JDBC-Typ-1-Treiber kommuniziert ausschließlich über einen JDBC-ODBC-Bridge-Treiber. Die bekannteste JDBC-ODBC-Bridge ist die von Oracle vertriebene. Damit ist ein Typ-1-Treiber abhängig von einem installierten ODBC-Treiber. Der JDBC-ODBC-Bridge-Treiber wandelt JDBC- in ODBC-Anfragen um.
Ein Typ-1-Treiber wird dann verwendet, wenn es zu der Datenbank einen ODBC-Treiber, jedoch keine eigenständigen JDBC-Treiber gibt.
Mit Java 9 wird die Unterstützung für JDBC-Typ-1-Treiber eingestellt.
Typ-2-Treiber
[Bearbeiten | Quelltext bearbeiten]Ein Typ-2-Treiber kommuniziert über eine plattformspezifische Programmbibliothek auf dem Client mit dem Datenbankserver. Das bedeutet, dass für jede Betriebssystem-Plattform zu dem Typ-2-Treiber eine zusätzliche Programmbibliothek benötigt wird.
Typ-3-Treiber
[Bearbeiten | Quelltext bearbeiten]Mittels des Typ-3-Treibers werden die JDBC-API-Befehle in generische DBMS-Befehle übersetzt und (über ein Netzwerkprotokoll) an einen Middleware-Treiber auf einem Anwendungsserver übertragen. Erst dieser Anwendungsserver transformiert die Befehle für die spezifischen Datenbankserver und leitet sie an diese weiter. Ein Typ-3-Treiber benötigt damit keine plattformspezifischen Bibliotheken und muss auch nichts über den verwendeten Datenbankserver wissen.
Typ-3-Treiber eignen sich sehr gut für Internet-Protokolle im Zusammenhang mit Firewalls.
Typ-4-Treiber
[Bearbeiten | Quelltext bearbeiten]Beim Typ-4-Treiber werden die JDBC-API-Befehle direkt in DBMS-Befehle des jeweiligen Datenbankservers übersetzt und (über ein Netzwerkprotokoll) an diesen übertragen. Ein Middleware-Treiber wird dabei nicht verwendet. Damit kann ein Typ-4-Treiber schneller als ein Typ-3-Treiber sein, ist aber weniger flexibel.
Typ-4-Treiber eignen sich gut für Intranet-Lösungen, die schnelle Netzprotokolle nutzen wollen.
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Offizielle JDBC-Homepage (englisch)
- JDBC Tutorial (englisch)
- Liste der verfügbaren JDBC-Treiber (englisch) für Oracle-Datenbanken
- Liste der verfügbaren JDBC-Treiber (englisch) für DB2-Datenbanken
- Liste der verfügbaren JDBC-Treiber (englisch) für MSSQL-Datenbanken
- Liste der verfügbaren JDBC-Treiber (englisch) für PostgreSQL-Datenbanken
- JSR 221 (englisch)
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ https://jcp.org/aboutJava/communityprocess/mrel/jsr221/index3.html
- ↑ https://jcp.org/en/jsr/detail?id=221
- ↑ https://docs.oracle.com/javase/9/docs/api/java/sql/package-summary.html