Pilote JDBC – Wikipedia – Bien choisir son serveur d impression

UNE Pilote JDBC est un composant logiciel permettant à une application Java d'interagir avec une base de données.[1] Les pilotes JDBC sont analogues aux pilotes ODBC, aux fournisseurs de données ADO.NET et aux fournisseurs OLE DB.

Pour se connecter à des bases de données individuelles, JDBC (API Java Database Connectivity) requiert des pilotes pour chaque base de données. Le pilote JDBC établit la connexion à la base de données et implémente le protocole de transfert de la requête et du résultat entre le client et la base de données.

Les pilotes de technologie JDBC appartiennent à l’une des quatre catégories.[2]

  1. Pont JDBC-ODBC
  2. Pilote d'API natif
  3. Pilote de protocole réseau (pilote de middleware)
  4. Pilote de protocole de base de données (pilote Pure Java) ou pilote léger.

Pilote de type 1 – Pont JDBC-ODBC[[[[modifier]

Schéma du pont JDBC-ODBC

Le pilote JDBC de type 1, également connu sous le nom de Pont JDBC-ODBC, est une implémentation de pilote de base de données qui utilise le pilote ODBC pour se connecter à la base de données. Le pilote convertit les appels de méthode JDBC en appels de fonction ODBC.

Le pilote dépend de la plate-forme car il utilise ODBC, qui dépend à son tour des bibliothèques natives du système d'exploitation sous-jacent sur lequel la machine virtuelle est exécutée. En outre, l'utilisation de ce pilote entraîne d'autres dépendances de l'installation. Par exemple, ODBC doit être installé sur l'ordinateur doté du pilote et la base de données doit prendre en charge un pilote ODBC. L'utilisation de ce pilote est déconseillée si l'alternative d'un pilote pur-Java est disponible. L'autre implication est que toute application utilisant un pilote de type 1 n'est pas portable, étant donné la liaison entre le pilote et la plate-forme. Cette technologie ne convient pas à un environnement de transaction élevée. Les pilotes de type 1 ne prennent pas non plus en charge l'ensemble des commandes Java et sont limités par les fonctionnalités du pilote ODBC.

Sun (maintenant Oracle) fournit un pilote de pont JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver. Ce pilote est un code natif et non Java, et est une source fermée. Le pont JDBC-ODBC de Sun / Oracle a été supprimé de Java 8 (d'autres fournisseurs sont disponibles).[3][4][5][6]

Si un pilote a été écrit de telle sorte que son chargement provoque la création d’une instance et appelle également DriverManager.registerDriver avec cette instance comme paramètre (comme il se doit), elle figure dans la liste des pilotes de DriverManager et est disponible pour la création d'une connexion.

Il peut parfois arriver que plusieurs pilotes JDBC soient capables de se connecter à une URL donnée. Par exemple, lors de la connexion à une base de données distante donnée, il peut être possible d’utiliser un pilote de pont JDBC-ODBC, un pilote JDBC / protocole générique, ou un pilote fourni par le fournisseur de la base de données. Dans de tels cas, l'ordre dans lequel les pilotes sont testés est important, car DriverManager utilisera le premier pilote détecté pouvant se connecter avec succès à l'URL donnée.

DriverManager essaie d’abord d’utiliser chaque pilote dans l’ordre dans lequel il a été enregistré. (Les pilotes répertoriés dans jdbc.drivers sont toujours enregistrés en premier.) Il ignorera tous les pilotes qui sont du code non approuvé, à moins qu'ils aient été chargés à partir de la même source que le code qui tente d'ouvrir la connexion.

Il teste les pilotes en appelant tour à tour la méthode Driver.connect, en leur transmettant l'URL que l'utilisateur a initialement transmise à la méthode. DriverManager.getConnection. Le premier pilote qui reconnaît l'URL établit la connexion.

Avantages[[[[modifier]

  • Vous pouvez accéder à presque toutes les bases de données pour lesquelles un pilote ODBC est installé, et les données peuvent être récupérées.

Désavantages[[[[modifier]

  • La surcharge de performances puisque les appels doivent passer par le pont JDBC (connectivité de base de données java) au pilote ODBC (connectivité de base de données ouverte), puis à l'interface de connectivité de base de données native (peut donc être plus lente que d'autres types de pilotes).
  • Le pilote ODBC doit être installé sur la machine cliente.
  • Ne convient pas aux applets, car le pilote ODBC doit être installé sur le client.
  • Les pilotes ODBC spécifiques ne sont pas toujours disponibles sur toutes les plates-formes; par conséquent, la portabilité de ce pilote est limitée.
  • Pas de support de JDK 1.8 (Java 8).

Pilote de type 2 – Pilote Native-API[[[[modifier]

Schéma du pilote de l'API native

Le pilote JDBC de type 2, également connu sous le nom de Pilote d'API natif, est une implémentation de pilote de base de données qui utilise les bibliothèques côté client de la base de données. Le pilote convertit les appels de méthode JDBC en appels natifs de l'API de base de données. Par exemple: Le pilote Oracle OCI est un pilote de type 2.

Avantages[[[[modifier]

  • En l'absence d'implémentation du pont JDBC-ODBC, il peut être considérablement plus rapide qu'un pilote de type 1.

Désavantages[[[[modifier]

  • La bibliothèque cliente du fournisseur doit être installée sur la machine cliente.
  • Toutes les bases de données ne possèdent pas de bibliothèque côté client.
  • Ce pilote dépend de la plate-forme.
  • Ce pilote prend en charge toutes les applications Java, à l'exception des applets.

Pilote de type 3 – Pilote de protocole réseau (pilote de middleware)[[[[modifier]

Schéma du pilote de protocole réseau

Le pilote JDBC de type 3, également appelé pilote Pure Java pour les middlewares de bases de données,[7] est une implémentation de pilote de base de données qui utilise un niveau intermédiaire entre le programme appelant et la base de données. Le niveau intermédiaire (serveur d'applications) convertit les appels JDBC directement ou indirectement en un protocole de base de données spécifique au fournisseur.

Cela diffère du pilote de type 4 en ce que la logique de conversion de protocole ne réside pas chez le client, mais dans le niveau intermédiaire. Comme les pilotes de type 4, le pilote de type 3 est entièrement écrit en Java.

Le même pilote JDBC côté client peut être utilisé pour plusieurs bases de données. Cela dépend du nombre de bases de données que le middleware a été configuré pour prendre en charge. Le pilote de type 3 est indépendant de la plate-forme car les différences liées à la plate-forme sont gérées par le middleware. En outre, l'utilisation du middleware offre des avantages supplémentaires en matière de sécurité et d'accès par pare-feu.

Les fonctions[[[[modifier]

  • Envoie des appels d'API JDBC à un serveur réseau de niveau intermédiaire qui les convertit en protocole réseau spécifique au SGBD. Les appels traduits sont ensuite envoyés à un SGBD particulier.
  • Suit une approche de communication à trois niveaux.
  • Peut s'interfacer avec plusieurs bases de données – Non spécifique au fournisseur.
  • Le pilote client JDBC écrit en java communique avec un middleware-net-server à l'aide d'un protocole indépendant de la base de données, puis ce serveur Web traduit cette demande en commandes de base de données pour cette base de données.
  • Ainsi, la communication entre le pilote et le middleware est indépendante de la base de données.

Avantages[[[[modifier]

  • Comme la communication entre le client et le serveur middleware est indépendante de la base de données, la bibliothèque du fournisseur de la base de données n’est pas nécessaire sur le client. Le client n'a pas besoin d'être changé pour une nouvelle base de données.
  • Le serveur middleware (qui peut être un serveur d'applications J2EE à part entière) peut fournir des services middleware typiques tels que la mise en cache (des connexions, les résultats de requêtes, etc.), l'équilibrage de la charge, la journalisation et l'audit.
  • Un seul pilote peut gérer n'importe quelle base de données, à condition que le middleware la prenne en charge.
  • Exemple: serveur IDA

Désavantages[[[[modifier]

  • Nécessite que le codage spécifique à la base de données soit effectué dans le niveau intermédiaire.
  • La couche intermédiaire ajoutée peut entraîner une latence supplémentaire, mais elle est généralement surmontée en utilisant de meilleurs services intermédiaires.

Pilote de type 4 – Pilote de protocole de base de données / Thin Driver (pilote Pure Java)[[[[modifier]

Schéma du pilote de protocole natif

Le pilote JDBC de type 4, également appelé Direct to Database Pilote Java pur, est une implémentation de pilote de base de données qui convertit directement les appels JDBC en un protocole de base de données spécifique au fournisseur.

Entièrement écrits en Java, les pilotes de type 4 sont donc indépendants de la plate-forme. Ils installent à l'intérieur de la machine virtuelle Java du client. Cela offre de meilleures performances que les pilotes de type 1 et de type 2, car il ne génère pas de temps système supplémentaire pour la conversion des appels en appels ODBC ou API de base de données. Contrairement aux pilotes de type 3, il n’a pas besoin de logiciel associé pour fonctionner.

Le protocole de base de données étant spécifique au fournisseur, le client JDBC nécessite des pilotes distincts, généralement fournis par le fournisseur, pour se connecter à différents types de bases de données.

Avantages[[[[modifier]

  • Complètement implémenté en Java pour atteindre l'indépendance de la plate-forme.
  • Ces pilotes ne traduisent pas les demandes dans un format intermédiaire (tel que ODBC).
  • L'application cliente se connecte directement au serveur de base de données. Aucune couche de traduction ou de middleware n'est utilisée, ce qui améliore les performances.
  • La machine virtuelle Java peut gérer tous les aspects de la connexion entre l'application et la base de données. cela peut faciliter le débogage.

Désavantages[[[[modifier]

  • Les pilotes sont spécifiques à la base de données, car différents fournisseurs de bases de données utilisent des protocoles réseau très différents (et généralement propriétaires).

Liste des pilotes JDBC[[[[modifier]

Voir également[[[[modifier]

Références[[[[modifier]


Pilote JDBC – Wikipedia – Bien choisir son serveur d impression
4.9 (98%) 32 votes