JAVA.SQL -- Driver Manager

kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012 - 1 oct. 2006 à 03:36
Ar0z Messages postés 44 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 12 août 2007 - 3 oct. 2006 à 03:17
Bonsoir à tous

j'ai une classe  "BaseDeDonnee" dans laquel j'ai 2 fonctions.
      - une pour creer la connection à la bdd

try

{Class.forName(

pilote);

dManager = DriverManager. getConnection (
url);
} catch .....

      - la 2ieme est une requete sur la bdd

requete

=
dManager.createStatement();

resultatDest =
requete .executeQuery(
"select count(*) as nbDisques from test");

resultatDest.first();

return

resultatDest;

Mon problème survient lors de la compilation
j'ai une erreur sur cette ligne:

requete = dManager
.createStatement();

mais si par contre  je regroupe les 2 fonction en une seul

c.a.d
public

static ResultSet infoBdd(){

      try {            Class.forName(

pilote);

            dManager = DriverManager. getConnection (
url);

            requete =
dManager.createStatement();

            resultatDest =
requete.executeQuery(
"select count(*) as nbDisques from test");

            resultatDest.first();      }

catch (SQLException e2) {
            e2.printStackTrace();

      }

catch (ClassNotFoundException e) {
            e.printStackTrace();

      }

      return
resultatDest;

}

la aucun pb  la requete s'execute bien

donc ma question est pourquoi ce comportement ?
Il faut recharger le driver a chaque requete ?

merci de votre aide
a+

5 réponses

Ar0z Messages postés 44 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 12 août 2007
2 oct. 2006 à 02:27
Pourrais-tu préciser quelle erreur tu as exactement ?

Sinon je pense que c'est parceque le compilo considère que tu peux appeller ta seconde méthode sans avoir appeller la premiere. Dans ce cas, l'objet dManager n'a pas été initialisé.
De plus, si tu mets l'initiation de la connexion et l'execution de la requete dans deux bloc try{}differents, çà ne marchera pas non plus car le l'init de la connexion peut échouer et l'objet dManager n'aura alors pas été initialisé lors de la tentative d'éxecution de la requête.
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
2 oct. 2006 à 02:32
salut

il me semble que l'erreur soit ClassNotFoundException

donc la sa oblige a charger le driver a chaque requete
je comprend pas trop pourquoi mais bon
0
Ar0z Messages postés 44 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 12 août 2007
2 oct. 2006 à 02:45
Ca parait bourrin en effet. Je ne sais pas trop comment faire mais tu dois avoir une solution pour contourner le probleme. Par exemple, dans le catch{} de l'init de la connexion, tu pourrais instancier un objet implementant Connection sous dManager.
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
2 oct. 2006 à 19:08
ok je regarderai ca

pas maintenant  mais je te tiens au courant
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ar0z Messages postés 44 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 12 août 2007
3 oct. 2006 à 03:17
ok ! Je vais me renseigner de mon côté car çà me parait bizarre quand même :)
0
Rejoignez-nous