Bonjour,
J'ai crée une connexion à une base de données access, depuis une application java.
Pour cela, j'ai ecrit les instructions suivantes
Bien que dans mon commentaire, j'aie écrit ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 final String driverOdbc= "sun.jdbc.odbc.JdbcOdbcDriver"; // driver odbc inclus dans le jdk // Autochargement du driver // Au chargement d'une classe Java, votre JVM crée automatiquement un objet. //Celui-ci récupère toutes les caractéristiques de votre classe , c'est à dire par exemple quels sont ses constructeurs, toutes ses méthodes, toutes ses propriétés etc...) // Il s'agit d'un objet de type Class. //on crée une instance de la classe Class pour la classe de nom driverOdbc Class c1 = Class.forName(driverOdbc); //on crée une nouvelle instance de la classe décrite par c1 , c'est à dire une instance de la classe driverOdbc c1.newInstance();
Je voudrais obtenir des précisions suivantes :
// Autochargement du driver
// Au chargement d'une classe Java, votre JVM crée automatiquement un objet.
//Celui-ci récupère toutes les caractéristiques de votre classe , c'est à dire par exemple quels sont ses constructeurs, toutes ses méthodes, toutes ses propriétés etc...)
// Il s'agit d'un objet de type Class.
//on crée une instance de la classe Class pour la classe de nom driverOdbc
Class c1 = Class.forName(driverOdbc);
//on crée une nouvelle instance de la classe décrite par c1 , c'est à dire une instance de la classe driverOdbc
c1.newInstance();
-tout d'abord, pourquoi passer par le fait de créer un objet de type Class , pour ensuite créer une instance de la classe passée en paramètre, ici(driverOdbc) au lieu de directement créer une instance de la classe driverOdbc.
Est-ce du fait que la classe driverOdbc n'est peut-être pas une classe mais une interface, ou une classe abstraite?
En regardant dans l'APi java, je ne trouve pas ce nom de classe, ni d'interface mais uniquement l'interface driver.
Qu'est-ce que driverOdbc exactement : un nom de classe, d'interface, de classe abstraite?
Merci beaucoup de bien vouloir m'aider à répondre à cette question.
Ensuite, concernant le role du driver jdbc:odbc, si je comprends bien, son rôle consiste à traduire les commandes java dans un langage compris par le SGBDR Access: de quelles commandes java s'agit-il?
Si je m'en tiens aux requêtes SQL intégrées à l'application java telles que l'on peut le voir dans le code ci-dessous,
Le langage de requêtage SQl est également compris par Access, donc quel type d'instruction a donc besoin de traduire le driver jdbc:odbc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ConnexionSQL = DriverManager.getConnection("jdbc:odbc:bdd_clients","",""); //ConnexionSQL = //Connexion à une base de données nommée sur un serveur distant : stmt = ConnexionSQL.createStatement(); requete_1 = "select ID_CLI,NOM_CLI,PRENOM_CLI,AD1_CLI,AD2_CLI, AD3_CLI, TYPE_CLI from CLIENTS_PARTICULIERS ;
Pour terminer, peut -on dire qu'une classe abstraite possède un constructeur par défaut sans paramètres, même si on ne définit pas de constructeur pour une classe abstraite du fait qu'elle n'est pas instanciable.
Merci encore beaucouo de votre aide sur tous ces points.
Cordialement.
new_wave
Partager