IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Problème de connection avec JDBC ! [Débutant(e)]


Sujet :

JDBC Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut Problème de connection avec JDBC !
    Je suis débutant et j'ai voulu utiliser Java avec JDBC avec ACCESS sur une base de données locale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    import java.sql.*;
    public class hello{
     
     
          public static void main(String[] args){
     
              try {
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                  }catch (Exception e) {
                  System.out.println("Error: " + e);
                  }
              String url="jdbc:odbc: Personnes" ; 
              Connection con = DriverManager.getConnection(url,"",""); 
              Statement st = con.createStatement();
              ResultSet rec = st.executeQuery( "select nom from Client");
     
     
          }
     
     
    }
    Ici : personnes est le nom de la source de données

    À la compilation j’ai les messages suivants :

    hello.java:13: unreported exception java.sql.SQLException; must be caught or declared to be thrown
    Connection con = DriverManager.getConnection(url,"","");
    ^
    hello.java:14: unreported exception java.sql.SQLException; must be caught or declared to be thrown
    Statement st = con.createStatement();
    ^
    hello.java:15: unreported exception java.sql.SQLException; must be caught or declared to be thrown
    ResultSet rec = st.executeQuery( "select nom from Client");
    ^
    3 errors
    Je pense que le problème se situe au niveau de la connexion.
    Qu’est ce qu’il faut pour qu’il fonctionne?

  2. #2
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Je pense qu'il faut simplement te familiariser avec les règles du langage, par exemple en lisant quelques Cours magistraux et d'initiation.

    Ici, la méthode getConnection renvoie une exception, qu'il faut traiter dans un bloc try / catch de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
    {
     connex = DriverManager.getConnection(url,"",""); 
    }
    catch (SQLExecption bing)
    {
     System.err.println("mince alors");
    }
    ... et je te conseille très vivement de suivre mon premier conseil, et non pas de copier/coller le code que je te suggère, sinon tu vas au devant de plus d'une nuit blanche !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    Salut !
    Justement avant de poster j'ai lu les tutoriaux et je vouler m'initier en suivant justement cete doc. Le problème que si je l'utilise entre try et catch , j'aurai toujours ces errors puisque c'est à la Compilation.

  4. #4
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    Problème Interface KeyboardChair. Les bons Events sont envoyés, mais ils ne sont pas traités.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Problème Interface KeyboardChair. Les bons Events sont envoyés, mais ils ne sont pas traités
    Je n'ai pas bien saisie ce que veut dire problème keyboardchair et comment proceder pour résoudre ce problème.

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 34
    Par défaut
    Salut,
    je suis débutant, mais je pense qu'il faut essayer ce que disait Spekel, c'est à dire traiter l'exception SQLException. Là tu verras si tu auras encore à la compilation un message te demandant d'attraper l'exception...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    J"ai toujours les mêmes erreurs en utilisant aussi l'exception de spekal.

  8. #8
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Impossible

    Tu peux nous renvoyer le code ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    En informatique on est jamais sur de quoi que ce soit !

    Voilà le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    import java.sql.*;
    public class hello{
     
     
          public static void main(String[] args){
     
              try {
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                  }catch (Exception e) {
                  System.out.println("Error: " + e);
                  }
              String url="jdbc:odbc:Personnes" ;
     
          try
             {
              Connection con = DriverManager.getConnection(url,"",""); 
             }
             catch (Exception e)
             {
                System.err.println("mince alors" +e);
              }
     
     
           //   Connection con = DriverManager.getConnection(url,"",""); 
     
     
             Statement st = con.createStatement();
              ResultSet rec = st.executeQuery( "select nom from Client");
     
     
          }
     
     
    }
    Aprés la compilation je recois :

    hello.java:27: cannot resolve symbol
    symbol : variable con
    location: class hello
    Statement st = con.createStatement();
    ^
    1 error

  10. #10
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Mais cela n'a rien à voir avec la première erreur !

    Est-ce que tu pourrais lire et comprendre les tutoriaux et non pas copier / coller bêtement le code !!

    Bon... je réponds, mais c'est la dernière fois, après tu te débrouilles

    Ici il y a une erreur parce que la variable con n'est pas visible depuis cette ligne, puisqu'elle est maintenant déclarée dans le bloc try / catch que tu as trop rapidement copié / collé. On ne fait pas une application base de données en copiant / collant des exemples trouvés ici et là !

    Bonne lecture.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    Bonjour !
    ça m'apprendra la prochaine fois à ne pas faire du copier/coller pour faire les bases de donnèes je pense que c'est un domaine qui me dépasse beaucoup!

  12. #12
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Mais comme partout, la méthode est parfaitement simple : il faut lire la doc et progresser petit à petit par des applis de plus en plus complexes ! Si tu procèdes comme cela, il n'y a pas de raison que tu n'y arrives pas. Et en plus, les forums donnent un petit coup de pouce, alors pourquoi hésiter ?

  13. #13
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 34
    Par défaut
    Salut,
    j'ai essayé de reprendre ton code, et voilà ce que ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    import java.sql.*;
    public class hello{
     
     
          public static void main(String[] args){
           Connection con=null;
     
              try {
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                  }catch (Exception e) {
                  System.out.println("Error: " + e);
                  }
              String url="jdbc:odbc:Personnes" ;
     
          try
             {
              con = DriverManager.getConnection(url,"",""); 
              Statement st = con.createStatement();
              ResultSet rec = st.executeQuery( "select nom from Client");
     
              }
     
          catch (Exception e)
             {
                System.err.println("mince alors" +e);
              }
     
           }
     
    }

    Quelques remarques:
    - tu as oublié d'importer sun.jdbc.odbc.JdbcOdbcDriver,
    - tu dois déclarer la variable con avant de lui affecter une valeur dans le bloc try,
    - le 2nd bloc try doit contenir Statement st et Resultset rec avant que le code ne puisse être compilé,sinon tu auras le message " unreported exception java.sql.SQLException; must be caught or declared to be thrown "

  14. #14
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    juste quelques remarques en passant :

    pourquoi ne pas utiliser un seul bloc try catch pour le tout ?

    tu devrais également attraper les SQLException avant. Quand tu as une exception, il est toujours intéressant d'avoir le plus de précision possible dessus

    enfin pense au bloc finally pour fermer les flux. Rien ne coute d'etre propre et prévenant ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    try {
     
         try {
              //instanciation des objets et établissement de la connexion
              //execution des requetes et traitements super chiadés
         } finally {
             // fermeture des flux dans l'ordre inverse de l'ouverture
         }
     
    } catch (SQLEception sqle) {
         System.out.println("Mince alors -> "+sqle.getMessage());
         //sqle.printStackTrace();
    } catch (Exception e) {
        System.out.println("Hum hum -> "+e.getMessage());
        //e.printStackTrace();
    }
    Avec tout ça tu devrais t'en sortir. En plus je suis sur que de nombreux exemples tout à fait corrects parsèment ce forum.

    Soit disant, j'espere que le mien est correct

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    Bonjour,

    Merci beaucoup de tous vos conseils, effectivement en suivant vos précieux remarques je suis arrivé à le faire fonctionner. un grand merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de connection avec une base de données
    Par kj_83 dans le forum C++Builder
    Réponses: 4
    Dernier message: 31/10/2006, 15h40
  2. problème de connexion avec JDBC
    Par r@rou dans le forum JBuilder
    Réponses: 5
    Dernier message: 25/07/2006, 13h16
  3. problème de connection avec 2 PC
    Par yweiss dans le forum Windows XP
    Réponses: 2
    Dernier message: 12/07/2006, 14h09
  4. Problème de connection avec ADO
    Par t0ine dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/02/2006, 11h33
  5. Problème de connection avec phpmyadmin
    Par callo dans le forum Outils
    Réponses: 4
    Dernier message: 20/05/2005, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo