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 :

[debutant][jdbc]driver introuvable


Sujet :

JDBC Java

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut [debutant][jdbc]driver introuvable
    bonjour,

    j'ai mis ds le classpath:
    - le chemin permettant d'acceder au .jar contenant le driver ds le classpath.
    - le chemin permettant d'arriver à la classe Driver donc ...com.mysql.jdbc.Driver.class. c'est bien ça ?
    j'utilise une base de données mysql.
    j'ecris mon code sous eclipse 3.0.2

    mais j'ai un pb. je ne sais pas si c un pb de code ou si c'est un pb de classpath.

    qd je lance le prog, ça me met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Driver introuvable :
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
       at java.net.URLClassLoader$1.run(Unknown Source)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.net.URLClassLoader.findClass(Unknown Source)
       at java.lang.ClassLoader.loadClass(Unknown Source)
       at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
       at java.lang.ClassLoader.loadClass(Unknown Source)
       at java.lang.ClassLoader.loadClassInternal(Unknown Source)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Unknown Source)
       at Test.main(Test.java:30)
    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
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Statement;
    ...
    public static void main(String[] args) {
     
       String driver = "com.mysql.jdbc.Driver";
       String url = "jdbc:mysql://localhost";  //je ne sais pas si c bon...
       String login = "";
       String password = "";
       Connection connection = null;
     
       try{
          Class.forName(driver).newInstance();
          connection = DriverManager.getConnection(url,login,password);
          Statement statement = connection.createStatement();
          ResultSet rs = statement.executeQuery("select * from table");
          while(rs.next()){
            String s = rs.getString("nom");
            System.out.println(s);
          }
          ...
       }
     
       catch(ClassNotFoundException cnfe){
             System.out.println("Driver introuvable : ");
             cnfe.printStackTrace();
       }
     
       catch(SQLException sqle){
             System.out.println("Erreur SQL : "+sqle.getErrorCode());          }
     
       catch(Exception e){
             System.out.println("Autre erreur : ");
             e.printStackTrace();
       }
     
       finally   {
             if(connection!=null){
                   try{
                      connection.close();
                   }
     
                   catch(Exception e){
                      e.printStackTrace();
                   }
            }
     
       }
     
    }
    merci si vous pouvez m'aider

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Bonjour,

    J'ai eu un probleme similaire avec le driver d'Oracle.
    Pour résoudre cela, j'ai du télécharger un nouveau jar, le mettre a la racine de mon projet et faire avec, ca a marché sans trop de probleme... reste a savoir si ma méthode est universelle lol

    Bonne chance :p
    See you, space cowboy... and if you're satisfied, click on

  3. #3
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Tu executes ton code sous eclipse ou en ligne de commande?

    Pourrais tu faire un copier coller de la ligne afficher au lancement de ton programme sous eclipse (si tu l'executes avec eclipse) ou de la commande que tu tapes si tu fais ca en ligne de commande?
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  4. #4
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    bonjour,

    je travaille sous eclipse 3.0.2.
    qd j'execute le programme, j'obtiens ce que j'ai mis ds mon premier message donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Driver introuvable : //entrée ds le 1er catch du main
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at Test.main(Test.java:30)
    y-a-t-il qch a modifier ds eclipse? car je n'ai rien modifié...

    ds le classpath , j'ai mis:
    C:\Program Files\MySQL\jdbc\mysql-connector-java-3.1.8\mysql-connector-java-3.1.8-bin.jar
    C:\Program Files\MySQL\jdbc\mysql-connector-java-3.1.8\com\mysql\jdbc.Driver.class

    est ce que le pb peut venir de l'url que je passe en parametre de getConnection()? car j'ai mis cet url un peu au hasard (prise sur internet)

    merci de vos réponses.

  5. #5
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Si tu lances ton programme dans Eclipse, oui il faut que tu modifies aussi les libs utilisées par ton projet.

    Pour cela :



    Clic droit sur le nom de ton projet , clic sur l'item propriété
    une fenetre s'ouvre selectionne java BuildPath
    Selectionne l'onglet : librairies
    Ensuite ajoute ton jar par l'intermediaire du bouton add external Jar

    Ca devrait fonctionner...
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  6. #6
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    merci, tu as trouvé la solution.
    je n'ai plus le message d'erreur driver introuvable.
    par contre, j'en ai un autre
    alors je me permets de te demander.
    cette fois, je pense que c'est du à l'url.
    à l'execution, j'obtiens:
    car il rentre ds le 2eme catch....
    mon 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
     
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost";
    String login = "...";
    String password = "...";
    Connection connection = null;
     
    try{
    Class.forName(driver).newInstance();
    connection = DriverManager.getConnection(url,login,password);
    Statement statement = connection.createStatement();
    ResultSet rs = statement.executeQuery("select * from nom_table");
     while(rs.next()){
        String s = rs.getString("nom_colonne_table");
        System.out.println(s);
    ...
      }	   
    }
     
    catch(ClassNotFoundException cnfe){
      System.out.println("Driver introuvable : ");
      cnfe.printStackTrace();
    }
     
    catch(SQLException sqle){
       System.out.println("Erreur SQL : "+sqle.getErrorCode());		   
    }
    ...
    l'url correspond à l'endroit ou se trouve la base de données mysql ?
    dc est ce que ça peut etre:
    "C:\\Program Files\\MySQL\\MySQL Server 4.1\\data\\nom_de_la_base";
    j'ai testé, ça met la meme erreur mais est ce que l'url ne devrait pas plus ressembler à ça?

    sinon, mais je pense pas que ça viene de la, j'ai mis un select * , et apres je mets getString("nom_colonne_table"). j'ai testé avec select nom_colonne_table, et ça fait la meme erreur.

    merci

  7. #7
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,
    Citation Envoyé par debdev

    catch(ClassNotFoundException cnfe){
    System.out.println("Driver introuvable : ");
    cnfe.printStackTrace();
    }

    catch(SQLException sqle){

    sqle.printStaskTrace(); // <----- ajout de cette ligne
    System.out.println("Erreur SQL : "+sqle.getErrorCode());
    }
    ...

    [/code]
    Est ce que tu pourrais ajouter la ligne dans le bloc catch..
    Cela permettrait de voir la trace et l'exception et avoir plus d'indice..

    Citation Envoyé par debdev
    "C:\\Program Files\\MySQL\\MySQL Server 4.1\\data\\nom_de_la_base";
    Non l'url ne doit pas correspondre à cela. En fait, dont il est question est comme un chemin d'acces dans un context. En fait au moment de l'instanciation du driver .. ce lui est referencé par cet url...(Bon j'avoue que je me souviens plus trop de comment cela se passe exactement.. ) mais l'allure generale du driver est bien celle ci :

    Citation Envoyé par debdev
    jdbc:mysql:localhost:
    Et d'ailleur en te repondant je constate qu'il manque le nom de ta base à la fin de l'url...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jdbc:mysql:localhost:3306/dbname 
    dbname est le nom de ta base...
    et 3306 le port par defaut d'ecoute de MySQL
    en corrigeant ca, ca devrait fonctionner...
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  8. #8
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    merci pr tes réponses aussi rapides.
    alors j'ai fait les modif et voila ce qui apparait a l'execution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    java.sql.SQLException: Access denied for user 'nom_ds_variable_login'@'localhost' (using password: YES)
    Erreur SQL : 1045
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2851)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:750)
    	at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3562)
    	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1151)
    	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1777)
    	at com.mysql.jdbc.Connection.<init>(Connection.java:437)
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at Test.main(Test.java:33)
    je précise:
    c'est moi qui est installé la base de données mysql... dc j'ai mis ds le code comme login mon nom d'utilisateur sous windows xp mais je me souviens pas lors de l'installation de mysql qu'ils m'aient demandé un login....
    alors tu saurais comment faire pr savoir quel login je dois mettre?
    (si c'est ça le pb, car si ça se trouve, c pas ça du tout...
    merci

  9. #9
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Tu as fais les modifs pour le bloc catch? et pour l'url..

    Je n'ai pas de base MySQL installé sous la main... mais il me semble que tu peux voir ca dans la table system 'user'

    Deja pour verifier si ta base est bien installé ... tu te mes dans une console Dos et tu tape mysql.. normalement le prompt devrait devenit 'mysql:'

    Aussi voila un bout de code que tu peux inserer dans ta classe .. Il permet de se connecter à une base MySQL :
    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
     
    private static void init()
    	{
    		Driver monDriver = null;
    		try
    		{
    			monDriver = new Driver();
    			DriverManager.registerDriver(monDriver);
    		}
    		catch (SQLException e)
    		{
    			e.printStackTrace();  //To change body of catch statement use Options | File Templates.
    		}
    	}
     
     
    	public static Connection getConnectionMySql()
    	{
    		init();
     
    		try
    		{
    			return  DriverManager.getConnection("jdbc:mysql://localhost/fsbz","root","");
    		}
    		catch (SQLException e)
    		{
    			e.printStackTrace();  //To change body of catch statement use Options | File Templates.
    			return null;
    		}
     
    	}
    Il faut que tu remplaces 'fsbz' par le nom de ta base.
    Normalement par defaut à l'install -----> login : 'root' , mdp :''.

    essaie avec ca..
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  10. #10
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    PLEINS DE TRES GRAND MERCIS


    le pb c'était le login. ct bien root qu'il fallait mettre.
    sincerement merci pr ton aide d'hier et aujourd'hui.
    a+

  11. #11
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


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

Discussions similaires

  1. postgres JDBC Driver introuvable
    Par cyrano4 dans le forum JDBC
    Réponses: 2
    Dernier message: 07/03/2008, 15h53
  2. [ClassPath]JDBC DRIVER ORACLE9i sous Eclipse
    Par Devil666 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/03/2005, 22h22
  3. Réponses: 4
    Dernier message: 07/10/2004, 15h41
  4. [debutant][JDBC]
    Par zozolh2 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/05/2004, 18h16

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