JDBC - Types de pilotes

Qu'est-ce que le pilote JDBC?

Les pilotes JDBC implémentent les interfaces définies dans l'API JDBC, pour interagir avec votre serveur de base de données.

Par exemple, l'utilisation de pilotes JDBC vous permet d'ouvrir des connexions de base de données et d'interagir avec elle en envoyant des commandes SQL ou de base de données, puis en recevant les résultats avec Java.

Le package Java.sql fourni avec JDK contient diverses classes avec leurs comportements définis et leurs implémentations réelles sont effectuées dans des pilotes tiers. Les fournisseurs tiers implémentent l' interface java.sql.Driver dans leur pilote de base de données.

Types de pilotes JDBC

Les implémentations de pilotes JDBC varient en raison de la grande variété de systèmes d'exploitation et de plates-formes matérielles dans lesquels Java fonctionne. Sun a divisé les types d'implémentation en quatre catégories, les types 1, 2, 3 et 4, qui sont expliquées ci-dessous -

Type 1: pilote de pont JDBC-ODBC

Dans un pilote de type 1, un pont JDBC est utilisé pour accéder aux pilotes ODBC installés sur chaque ordinateur client. L'utilisation d'ODBC nécessite la configuration sur votre système d'un nom de source de données (DSN) qui représente la base de données cible.

Lorsque Java est sorti pour la première fois, c'était un pilote utile car la plupart des bases de données ne supportaient que l'accès ODBC, mais maintenant ce type de pilote n'est recommandé que pour une utilisation expérimentale ou lorsqu'aucune autre alternative n'est disponible.

Le pont JDBC-ODBC fourni avec JDK 1.2 est un bon exemple de ce type de pilote.

Type 2: API native JDBC

Dans un pilote de type 2, les appels d'API JDBC sont convertis en appels d'API C / C ++ natifs, qui sont uniques à la base de données. Ces pilotes sont généralement fournis par les fournisseurs de bases de données et utilisés de la même manière que le pont JDBC-ODBC. Le pilote spécifique au fournisseur doit être installé sur chaque ordinateur client.

Si nous changeons la base de données, nous devons changer l'API native, car elle est spécifique à une base de données et elle est pour la plupart obsolète maintenant, mais vous pouvez réaliser une certaine augmentation de vitesse avec un pilote de type 2, car cela élimine la surcharge d'ODBC.

Le pilote OCI (Oracle Call Interface) est un exemple de pilote de type 2.

Type 3: Java pur JDBC-Net

Dans un pilote de type 3, une approche à trois niveaux est utilisée pour accéder aux bases de données. Les clients JDBC utilisent des sockets réseau standard pour communiquer avec un serveur d'applications middleware. Les informations de socket sont ensuite traduites par le serveur d'application middleware dans le format d'appel requis par le SGBD, et transmises au serveur de base de données.

Ce type de pilote est extrêmement flexible, car il ne nécessite aucun code installé sur le client et un seul pilote peut en fait donner accès à plusieurs bases de données.

Vous pouvez considérer le serveur d'applications comme un "proxy" JDBC, ce qui signifie qu'il effectue des appels pour l'application cliente. Par conséquent, vous devez connaître la configuration du serveur d'applications afin d'utiliser efficacement ce type de pilote.

Votre serveur d'applications peut utiliser un pilote de type 1, 2 ou 4 pour communiquer avec la base de données, il sera utile de comprendre les nuances.

Type 4: Java pur à 100%

Dans un pilote de type 4, un pilote purement basé sur Java communique directement avec la base de données du fournisseur via une connexion socket. Il s'agit du pilote le plus performant disponible pour la base de données et il est généralement fourni par le fournisseur lui-même.

Ce type de pilote est extrêmement flexible, vous n'avez pas besoin d'installer de logiciel spécial sur le client ou le serveur. De plus, ces pilotes peuvent être téléchargés dynamiquement.

Le pilote Connector / J de MySQL est un pilote de type 4. En raison de la nature propriétaire de leurs protocoles réseau, les fournisseurs de bases de données fournissent généralement des pilotes de type 4.

Quel pilote doit être utilisé?

Si vous accédez à un type de base de données, tel qu'Oracle, Sybase ou IBM, le type de pilote préféré est 4.

Si votre application Java accède à plusieurs types de bases de données en même temps, le type 3 est le pilote préféré.

Les pilotes de type 2 sont utiles dans les situations où un pilote de type 3 ou de type 4 n'est pas encore disponible pour votre base de données.

Le pilote de type 1 n'est pas considéré comme un pilote de niveau de déploiement et est généralement utilisé à des fins de développement et de test uniquement.