À propos des pilotes JDBC


J'ai lu sur les pilotes qui utilisent l'API JDBC dans un livre. Pas clair à propos de l'explication. Je veux savoir quel type de pilote le code ci-dessous utilise. Est-ce un pilote de type 4( pilote java fourni par le fournisseur de la base de données). Il a été mentionné que rien ne doit être installé dans l'application cliente pour les pilotes de type 4. Mais nous devons toujours avoir le fichier de classe com.mysql.jdbc.Pilote pour que le code fonctionne. Pas sûr de ce que l'on entend ici.

Il a également été mentionné que les lecteurs de type 2 utilisent le binaire code du pilote par le fournisseur de base de données et il doit être installé sur le client. Comment il diffère de l'exemple ci-dessous. Serait utile si un exemple de code peut être collé pour accéder aux pilotes de type 2.

Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/coffeebreak";
conn = DriverManager.getConnection(url, "username", "password");
doTests();
conn.close();
Author: DNA, 2012-03-06

1 answers

Lorsque vous voyez la phrase "rien ne doit être installé" en référence aux pilotes JDBC de type 4 (en particulier dans l'ancienne documentation), cela fait référence au fait que rien d'autre que le fichier jar du pilote lui-même ne doit être installé sur la machine cliente. Vous aurez besoin du pot de pilote quoi qu'il arrive, mais avec les autres types:

  • Type 1: ODBC et un pilote ODBC devront être installés sur le système client
  • Type 2: un pilote de base de données natif devra être installé sur le client système
  • Type 3: un serveur proxy de protocole devra être installé entre le système client et la base de données

Ainsi, par exemple, un pilote Oracle de type 2 (en plus du jar jdbc lui-même), nécessite une installation complète du client oracle sur la machine qui exécutera le code java.

Quelques notes:

  • Depuis java 6 (IIRC), avec un pilote jdbc moderne, vous n'avez pas besoin de la classe.Déclaration forName plus. Les nouveaux pilotes JDBC s'inscrivent maintenant eux-mêmes automatiquement.

  • Vous ne pouvez pas le dire simplement en regardant le code qui l'utilise (c'est tout le problème), mais le pilote mysql jdbc est un pilote de type 4.

  • Comme vous ne pouvez pas faire la différence en utilisant le pilote, l'exemple de code pour utiliser un pilote de type 2 est le même que celui que vous avez fourni dans la question.

  • Tous les types de pilotes jdbc (à l'exception du type 1, car il n'y en avait qu'une seule instance) comportent des pilotes fournis par le fournisseur. Le type fait référence à la façon dont le le pilote se connecte à la base de données, pas qui le fournit.

  • Les pilotes de type 2 sont assez rares ces jours-ci, et OMI, personne n'utilise vraiment les pilotes de type 1 ou 3 plus du tout.

  • De nos jours, presque tous les pilotes jdbc modernes et dignes de production sont de type 4. (Je sais qu'oracle fournit à la fois un pilote de type 2 et un pilote de type 4, mais c'est le seul auquel je peux penser, et les deux pilotes ont les mêmes fonctionnalités.) Utilisez le type 4 sauf si vous avez des fortement conseils spécifiques de le fournisseur de base de données.

De plus, la langue que vous citez semble assez datée. Les bases de JDBC n'ont pas changé de manière significative depuis un certain temps, mais même ainsi, vous voudrez peut-être consulter un livre plus récent.

 4
Author: Sean Reilly, 2012-03-06 07:43:09