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 :

probleme de connection au base donnees SQL


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut probleme de connection au base donnees SQL
    Bonjour,

    je suis débutant en informatique,
    j'ai cree une class de conection voici le code, je developpe en eclipse, j'ai ajouter dans lib le jar :mysql-connector-java-3.0.8-ga-bin.jar:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class TestJDBC11 {
     
     
    	private static void affiche(String message) {
    	    System.out.println(message);
    	  }
     
    	  private static void arret(String message) {
    	    System.err.println(message);
    	    System.exit(99);
    	  }
     
     
    		  public static void main(java.lang.String[] args) {
    		    Connection con = null;
    		    ResultSet resultats = null;
    		    String requete = "";
     
    		    // chargement du pilote
     
    		    try {
    		      Class.forName("com.mysql.jdbc.Driver").newInstance();
    		    } catch (Exception e) {
    		      arret("Impossible decharger le pilote jdbc pour mySQL");
    		    }
     
    		    //connection a la base de données
     
    		    //affiche("connection a la base de donnees");
    		    try {
     
    		      String DBurl = "jdbc:mysql://localhost/NomBaseDonnee;
    		      con = DriverManager.getConnection(DBurl,"root","root");
    		    } catch (SQLException e) {
    		      arret("Connection a la base de donnees impossible");
    		    }
     
    		    //creation et execution de la requête
     
    		    affiche("creation et execution dela requête");
    		    requete = "SELECT * FROM COURS";
     
    		    try {
    		      Statement stmt = con.createStatement();
    		      resultats = stmt.executeQuery(requete);
    		    } catch (SQLException e) {
    		      arret("Anomalie lors de l'execution de la requete");
    		    }
     
    		    //parcours des données retournees
     
    		    affiche("Parcours des donnees retournees");
    		    try {
    		      ResultSetMetaData rsmd = resultats.getMetaData();
    		      int nbCols = rsmd.getColumnCount();
    		      boolean encore = resultats.next();
     
    		      while (encore) {
     
    		        for (int i = 1; i <= nbCols; i++)
    		          System.out.print(resultats.getString(i) + "");
     
    		        System.out.println();
    		        encore = resultats.next();
    		      }
     
    		      resultats.close();
    		    } catch (SQLException e) {
    		      arret(e.getMessage());
    		    }
     
    		    affiche("fin du programme");
    		    System.exit(0);
    		  }
     
     
    }


    losque je fait run as application de ma class : il me donne ce message qui est dans catch:

    " Connection a la base de donnees impossible"



    merci de vos aide.

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    ya une personne qui peux m'aider,

    en fait, j'ai changé le code , je peux se connecter mais losque je debug avec eclipse, il affiche NulEXECEPTION dans la ligne :

    res = stmt.executeQuery(requete);


    voici 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
     
    import java.io.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
     
     
     Connection con=null ;
     
          ResultSet res = null;
          String requete = "";
          // chargement du pilote
          try {
             Class.forName("oracle.jdbc.driver.OracleDriver");
          } catch (ClassNotFoundException e) {
        	  System.out.println("Impossible de charger le pilote jdbc:odbc");
          }
     
          //connection a la base de données
     
         try {
     
             String DBurl = "jdbc:oracle:thin:@IP-machine:1521:iasdb";
              con = DriverManager.getConnection(DBurl,"user","pw");
          } catch (SQLException e) {
        	  System.out.println("Connection à la base de données impossible");
          }
     
          //insertion d'un enregistrement dans la table client 
     
          System.out.println("creation et execution de la requête");
          requete ="select prenom from nomTable where Name = "+ Name;
     
          try {
             Statement stmt = con.createStatement();
              res = stmt.executeQuery(requete);
     
          } catch (SQLException e) {
        	  System.out.println("Anomalie lors de l'execution de la requête");
          }
     
         prenom=res.getString(1)
     
       ici le code d' une fonction qui prend parametre comme prenom



    je vous remercie beaucoup de votre aide.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    la table nomtable existe t'elle ?

    de plus je pense que tu as une erreur dans ta requete en effet je parie que le champ nom et de type texte essaie plutot cette requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          requete ="select prenom from nomTable where Name = '"+ Name+"'"

  4. #4
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 55
    Points : 59
    Points
    59
    Par défaut
    ah oui aussi j'ai oublié un truc super important...

    Quand tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         prenom=res.getString(1)
    je te le conseil pas vraiment car si t'a requete contient 40 champs tu t'y retrouveras très vite plus.

    essaie plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      prenom=res.getString("prenom")
    tu y trouveras vite de l'intérêt

    Bon courage

  5. #5
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    De mon côté je préfère faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int i = 1;
    prenom=res.getString(i++);
    Au passage, la gestion des exceptions dans le code fourni est très très mauvaise. Un excellent exemple de mauvaise pratique. Il faut préférer ici un try/catch plus global.

  6. #6
    in
    in est déconnecté
    Membre expérimenté 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
    Points : 1 718
    Points
    1 718
    Par défaut
    De plus je te conseille vivement de regarder la FAQ. La réponse à ton problème est dedans ... tu pourras enfin voir à qui sert cette bizarre méthode next() présentée dans cette encore plus farfelue javadoc ...

Discussions similaires

  1. probleme de lecture de base DD sql
    Par usbfoot62 dans le forum JDBC
    Réponses: 11
    Dernier message: 22/04/2008, 14h09
  2. Probleme de connection au base de données
    Par yayamo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 31/01/2007, 10h51
  3. Probleme de connection au base de données
    Par yayamo dans le forum Installation
    Réponses: 1
    Dernier message: 29/01/2007, 17h11
  4. [MYSQL] Probleme de connection à la base
    Par As_2_piK dans le forum Bases de données
    Réponses: 1
    Dernier message: 03/04/2006, 08h53
  5. Réponses: 10
    Dernier message: 16/03/2005, 18h25

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