2012-03-05 3 views
0

J'ai lu sur les pilotes qui utilise l'API JDBC dans un livre. Pas clair à propos de l'explication. Je veux savoir quel type de pilote utilise le code ci-dessous. Est-ce le 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 client pour les pilotes de type 4. Mais nous avons toujours besoin du fichier de classe com.mysql.jdbc.Driver pour que le code fonctionne. Je ne suis pas sûr de ce que l'on veut dire ici.À propos des pilotes JDBC

Il a également été mentionné les lecteurs de type 2 utilisent le code binaire du pilote par le fournisseur de base de données et il doit être installé dans le client. En quoi diffère-t-il 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(); 
+0

La norme [Java Tutorial on JDBC] (http://docs.oracle.com/javase/tutorial/jdbc/index.html) peut être utile – DNA

+0

Merci beaucoup pour l'info – Arav

Répondre

4

Quand vous voyez l'expression « rien ne doit être installé » en référence au type 4 pilotes JDBC (en particulier dans la vieille documentation), il fait référence au fait que rien d'autre que le pot de pilote lui-même doit être installé sur la machine client. Vous aurez besoin du pot de conducteur, peu importe quoi, mais avec les autres types:

  • Type 1: ODBC et un pilote ODBC doit être installé sur le système client
  • Type 2: un pilote de base de données native besoin d'être installé sur le système client
  • 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 de type Oracle 2 (en plus de la jdbc jar lui-même), nécessite une installation complète du client Oracle sur la machine cela va exécuter le code Java.

Quelques notes:

  • Depuis Java 6 (IIRC), avec un pilote jdbc moderne, vous n'avez pas besoin de la déclaration Class.forName plus. Les nouveaux pilotes JDBC s'enregistrent maintenant automatiquement. Vous ne pouvez pas dire simplement en regardant le code qui l'utilise (c'est le point entier), 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 identique à celui que vous avez fourni dans la question.

  • Tous les types de pilotes jdbc (sauf le type 1, car il n'y en avait qu'une seule) sont fournis par le fournisseur. Le type fait référence à la manière dont le pilote se connecte à la base de données, et non à qui le fournit.

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

  • Aujourd'hui, presque tous les pilotes jdbc modernes 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 que je peux penser, et les deux les pilotes ont les mêmes caractéristiques.) Utilisez le type 4 à moins que vous ayez quelques fortement des conseils spécifiques du fournisseur de base de données.

En outre, la langue que vous citez semble assez datée. Les bases de JDBC n'ont pas changé de manière significative dans un certain temps, mais même si vous pourriez vouloir vérifier un livre plus récent.

+1

Je viens d'apprendre une cargaison. Merci. – Synesso

+0

Merci beaucoup pour l'info – Arav

Questions connexes