JDBC - Treiberarten

Was ist der JDBC-Treiber?

JDBC-Treiber implementieren die definierten Schnittstellen in der JDBC-API für die Interaktion mit Ihrem Datenbankserver.

Mit JDBC-Treibern können Sie beispielsweise Datenbankverbindungen öffnen und mit diesen interagieren, indem Sie SQL- oder Datenbankbefehle senden und dann Ergebnisse mit Java empfangen.

Das mit JDK gelieferte Java.sql- Paket enthält verschiedene Klassen, deren Verhalten definiert ist und deren tatsächliche Implementierung in Treibern von Drittanbietern erfolgt. Drittanbieter implementieren die Schnittstelle java.sql.Driver in ihrem Datenbanktreiber.

JDBC-Treibertypen

JDBC-Treiberimplementierungen variieren aufgrund der Vielzahl von Betriebssystemen und Hardwareplattformen, auf denen Java ausgeführt wird. Sun hat die Implementierungstypen in vier Kategorien unterteilt: Typ 1, 2, 3 und 4, die im Folgenden erläutert werden:

Typ 1: JDBC-ODBC-Brückentreiber

In einem Typ 1-Treiber wird eine JDBC-Bridge verwendet, um auf ODBC-Treiber zuzugreifen, die auf jedem Clientcomputer installiert sind. Für die Verwendung von ODBC muss auf Ihrem System ein Datenquellenname (DSN) konfiguriert werden, der die Zieldatenbank darstellt.

Als Java zum ersten Mal herauskam, war dies ein nützlicher Treiber, da die meisten Datenbanken nur den ODBC-Zugriff unterstützten. Jetzt wird dieser Treibertyp nur für experimentelle Zwecke empfohlen oder wenn keine andere Alternative verfügbar ist.

Die mit JDK 1.2 gelieferte JDBC-ODBC-Bridge ist ein gutes Beispiel für diese Art von Treiber.

Typ 2: JDBC-Native API

In einem Typ 2-Treiber werden JDBC-API-Aufrufe in native C / C ++ - API-Aufrufe konvertiert, die für die Datenbank eindeutig sind. Diese Treiber werden normalerweise von den Datenbankanbietern bereitgestellt und auf dieselbe Weise wie die JDBC-ODBC-Bridge verwendet. Der herstellerspezifische Treiber muss auf jedem Client-Computer installiert sein.

Wenn wir die Datenbank ändern, müssen wir die native API ändern, da sie für eine Datenbank spezifisch ist und derzeit größtenteils veraltet ist. Mit einem Typ-2-Treiber können Sie jedoch eine gewisse Geschwindigkeitssteigerung feststellen, da dadurch der ODBC-Overhead entfällt.

Der Oracle Call Interface (OCI) -Treiber ist ein Beispiel für einen Typ 2-Treiber.

Typ 3: JDBC-Net reines Java

In einem Typ 3-Treiber wird ein dreistufiger Ansatz verwendet, um auf Datenbanken zuzugreifen. Die JDBC-Clients verwenden Standard-Netzwerksockets, um mit einem Middleware-Anwendungsserver zu kommunizieren. Die Socket-Informationen werden dann vom Middleware-Anwendungsserver in das vom DBMS geforderte Aufrufformat übersetzt und an den Datenbankserver weitergeleitet.

Diese Art von Treiber ist äußerst flexibel, da kein Code auf dem Client installiert sein muss und ein einzelner Treiber tatsächlich Zugriff auf mehrere Datenbanken bieten kann.

Sie können sich den Anwendungsserver als einen JDBC- "Proxy" vorstellen, dh er ruft die Clientanwendung auf. Daher benötigen Sie einige Kenntnisse über die Konfiguration des Anwendungsservers, um diesen Treibertyp effektiv nutzen zu können.

Ihr Anwendungsserver verwendet möglicherweise einen Treiber vom Typ 1, 2 oder 4, um mit der Datenbank zu kommunizieren. Das Verständnis der Nuancen ist hilfreich.

Typ 4: 100% reines Java

In einem Typ 4-Treiber kommuniziert ein reiner Java-basierter Treiber über eine Socket-Verbindung direkt mit der Datenbank des Anbieters. Dies ist der leistungsstärkste Treiber, der für die Datenbank verfügbar ist, und wird normalerweise vom Anbieter selbst bereitgestellt.

Diese Art von Treiber ist äußerst flexibel. Sie müssen keine spezielle Software auf dem Client oder Server installieren. Außerdem können diese Treiber dynamisch heruntergeladen werden.

Der Connector / J-Treiber von MySQL ist ein Typ 4-Treiber. Aufgrund des proprietären Charakters ihrer Netzwerkprotokolle liefern Datenbankanbieter normalerweise Treiber vom Typ 4.

Welcher Treiber sollte verwendet werden?

Wenn Sie auf einen Datenbanktyp wie Oracle, Sybase oder IBM zugreifen, ist der bevorzugte Treibertyp 4.

Wenn Ihre Java-Anwendung gleichzeitig auf mehrere Datenbanktypen zugreift, ist Typ 3 der bevorzugte Treiber.

Typ 2-Treiber sind in Situationen nützlich, in denen ein Typ 3- oder Typ 4-Treiber für Ihre Datenbank noch nicht verfügbar ist.

Der Typ 1-Treiber wird nicht als Treiber auf Bereitstellungsebene betrachtet und normalerweise nur zu Entwicklungs- und Testzwecken verwendet.