Connection a Mysql via java

Résolu
Salut les gens,

Je commence en java alors soyez gentils plzzzzz :-)

J'essai de me connecter a ma base de donner Mysql en passant par un programme en java développé sous eclipse dont voici le code :


import java.sql.*;

class affichage{

public static void main(String[] args){

	String pilote = "com.mysql.jdbc.Driver";

	try{
		Class.forName(pilote);
 
		Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/test","root","pass");
 
		Statement instruction = connexion.createStatement();
 
		ResultSet resultat = instruction.executeQuery("SELECT * FROM ANNONCE");
		while(resultat.next()){

			
			System.out.println("---------------------------");
			System.out.println("N° ID_ANNONCE: "+resultat.getInt("ID_ANNONCE"));
			System.out.println("N° ID_MODELE: "+resultat.getInt("ID_MODELE"));
			System.out.println("Descriptif: "+resultat.getString("DESCRIPTIF"));

		}
	}
	catch (Exception e){

		System.out.println("echec pilote : "+e);
	}

	}
}



Il me semble avoir bien placer mes pilote mysql mais je suis pas sur ( je les ais mis la où il y a mon code java).

Et voici ce que cela m'affiche :
echec pilote : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Auriez-vous une solution a me proposé siouplé.

28 réponses

Résumé de la discussion

Le problème central est l'échec du chargement du pilote MySQL dans un programme Java utilisant JDBC, visible par l'erreur java.lang.ClassNotFoundException: com.mysql.jdbc.Driver lorsque la connexion est tentée. Des réponses recommandent de télécharger le connecteur JDBC de MySQL et d'ajouter le fichier jar au chemin du projet, par exemple dans Eclipse via Propriétés > Java Build Path. En cas de version plus récente, le nom de la classe pilote peut être com.mysql.cj.jdbc.Driver et la chaîne de connexion doit refléter le nom de la base et le port correct, par exemple jdbc:mysql://localhost:3306/base. Autre nuance utile, certains retours indiquent qu'un conflit entre anciens et nouveaux jars peut bloquer le chargement et qu'il faut nettoyer les anciennes versions du classpath pour stabiliser la connexion.

Bobot (l’IA à votre service)
  1. Hello,

    Télécharge le Jar du JDBC de Mysql sur le site officiel (merci google).

    Il faut ajouter le jar du JDBC dans le path du projet.
    Sous Eclipse > Clic droit sur ton projet > Properties > Java Build Path > Onglet Libraries > Bouton Add External Jar ou Add Jar en fonction de la localisation du jar.
    Avec ça, ça devrait fonctionner.

    Bon courage
    1. merci pour ton aide l'ajout du jar dans la bibliothèque à résolu mon problème.bye
    2. bonjour tout le monde,
      je suis débutante avec la programmation en Jade sous eclipse , je cherche comment connecté ma base MYSQL avec le JADE qlq peut m'aider????
    3. et avec JGraps comment fait-on stp, pour utiliser ses bases de données dan le code java?
    4. j'ai des problèmes avec la connexion a la base et voila le code

      package projet;

      import java.beans.Statement;
      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.ResultSet;
      import java.sql.SQLException;

      public class menu {

      /**
      * @param args
      */
      public static void main(String[] args) {
      // TODO Auto-generated method stub

      try
      {
      Class.forName("com.mysql.jdbc.Driver");
      String url = "jdbc:odbc:C:/Users/hamdi/AppData/Local/Temp/QUERY.LOG";
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/Hamdi" +
      "user=root"+"password=''");

      Statement stat = conn.createStatement();

      String query = "insert into tableau values hassen ,90,1";

      ResultSet resultat = stat.executeQuery(query);

      while(resultat.next()){

      System.out.println("---------------------------");
      System.out.println(""+resultat.getInt("age"));
      System.out.println(""+resultat.getString("nom"));
      System.out.println(""+resultat.getInt("id"));
      }

      } catch(Exception ex)
      {
      System.out.println(ex.getMessage());

      }
      }}
    5. tu l'as pas compilé ton code
  2. J'ai fait un tour sur le site en plus et j'ai pas tres bien compris c'est histoire de classpath.

    Si qulqu'un pouvai m'expliquer ca serai gentil ^^
    1. bonjour,

      presonnelement, j'ai jamais etabli une connexion (Mysql/java), mais j'ai etabli une connexion Mysql/vb.net, pour cela j'etais besoin d'un MysqlConnector, et c'est le cas pour java.

      voici le lien : https://dev.mysql.com/downloads/connector/j/5.0.html

      pour la chaine de connexion, je sais pas exactement comment.

      repond moi en tout cas.

      bonne chance
  3. Ué c bon je lai deja pris Mysqlconnector mais ja sais pas trop ou je dois le mettre, je l'ai mis la où il y a mon code source mais je suis aps sur de moi
    1. Right Click the project -- > build path -- > configure build path

      In Libraries Tab press Add External Jar and Select your jar.
  4. non,

    tu l'installe et tu fais ta chaine de connexion correctement, et lui il prend la charge de lier entre ton application et Mysql.

    voici un lien pour plus d'information sur la chaine de connexion.

    http://metarisk.inapg.inra.fr/content/download/431/2365/file/Connexion_Java-SGBDR.pdf

    bonne chance
    1. ok bah je te remercie je vais lire tout ca et je vais test, je te tien au courant

      Merci encore
      1. je t'en prie, je suis toujours a votre disposition, just tell me.

        et ca me ferai plaisir de t'aider.

        bonne chance et bonne courage
      2. @hamzaslt j'ai un brobleme si tu veux bien m'aidé.
        j' installé sur la meme machine qui est sous vista:
        1.eclipse
        2.tomcat
        3.les plugin de tomcat pour eclipce
        4. j'ai telecharger un connecteur jdbc
        5. j'ai installé mysql 5.1
        alors mon brobleme et que je doit me connecté a ma base de données a partire de eclipse mais je ne sais pas dit tout d'ou commançer.
        merci
        nb j' b1 cherché sur google mais je ne compend r1
      3. @meriam2010Slt,

        - télécharger mysql-connector-java-5.0.8-bin.jar
        -compresser le dans C:\ donc son chemin devient C:\mysql-connector-java-5.0.8-bin.jar
        - dans le poste de travail faire clic droite proriétés,avancé,variables d'environnement, dans les variables systeme cliquer sur path puis cliquer modifier dans le champ valeur de variable ajouter
        ";C:\mysql-connector-java-5.0.8-bin.jar" puis OK
        -maintenant sur eclipse faire un clic droite sur ton projet
        -choisir "importer" puis "general ->fichier archive" puis mettre C:\mysql-connector-java-5.0.8-bin.jar

        puis OK;
    2. C'est ce jar la que je dois dl?

      mysql-connector-java-5.0.4-bin-g.jar
      1. j'ai essayé ce code pour me connecter à une base de donnée mysql, et ça n'a pas marché!!

        import java.sql.*;
        public class connection {
        public static void main (String[] args) {
        Connection connexion;
        Statement statement;
        ResultSet resultat;
        try {
        Class.forName("com.mysql.jdbc.Driver");
        connexion = DriverManager.getConnection("jdbc:mysql://localhost/sql","root","");
        statement = connexion.createStatement();
        resultat = statement.executeQuery("SELECT * FROM uneTable");
        while(resultat.next()){
        System.out.println("Nom : "+resultat.getString("nom") + "Age : " + resultat.getInt("age") + " ans");
        }
        }
        catch(Exception e){
        System.out.print("Impossible de se connecté à MySQL");
        }
        }
        }
        aidez moi svp,et merci d'avance
      2. Voici un exemple :

        package votant;

        import Server.*;
        import java.sql.DriverManager;
        import com.mysql.jdbc.Connection;
        import com.mysql.jdbc.Statement;
        import java.sql.ResultSet;
        import java.sql.SQLException;

        /**
        *
        * @author Didyac
        */
        public class Connexion_DB {
        private Statement st;
        private ResultSet rs;
        Connection conn=null;
        String pilote="org.gjt.mm.mysql.Driver";
        String url="jdbc:mysql://localhost:3306/vote";

        /**
        * connecter(): fonction de connexion à la base de données
        * @return
        * @throws ClassNotFoundException
        */
        public Connection connecter() throws ClassNotFoundException{
        try{
        Class.forName(pilote);
        conn= (Connection) DriverManager.getConnection(url,"AI","passer");
        //st= (Statement) conn.createStatement();
        }
        catch(SQLException ex){ex.getStackTrace();}
        return conn;
        }

        }
    3. Bon alors je j'ai dl et j'ai fait comme tu m'a dit sous eclipse:
      Clic droit sur le projet=>propriété=>....

      Et ca à changer je n'ai plus le meme message d 'erreur :

      Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Unknown Source)
      at affichage.main(affichage.java:12)

      Il n'y aurai pas un site qui expliquerai les différents messages d'erreur ? Car je les comprend pas et puis ca me permettrai de me débrouiller par moi-même j'ai tenter de chercher avec google mais je tombe que sur des forums. Et avec mon cours passer de java je dois dire que je comprend pas tout :p

      Alors si vous cacher des adresse dans vos favoris faites tourner plz ca m'aiderai pas mal je pense
      1. ok merci je vais test evec ce que tu ma passer en lien donc ne pas tenir compte de ce message ^^
    4. Yop.
      Les exceptions, il faut bien les lire et avec un peu d'habitude, tu les comprendras tout seul.
      NoClassDefFoundError signifie, je n'ai pas trouvé la classe.

      Tu as telechargé le connector que je t'ai indiqué ?

      Ensuite, ta chaine de connexion n'est pas bonne:
      jdbc:mysql://localhost:3306/base

      Tu ne touche pas à Localhost sauf si ton serveur mysql est ailleurs, et la base, c'est le SID de la base (son nom, quoi)... :)

      1. Bon bah j'ai fait ce que tu m'a dit :
        - j'ai dl le fichier grace au lien que tu ma passer
        - je lai mis la où était enregistré mon code source
        - décompressé
        - ajouter le jar du JDBC dans le path du projet
        - modifier ma chaine de connexion qui est maitenant:
        Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/test/");

        - sauvegarder=>redemarré eclipse ( on sait jamais ^^)=>lancer le prog

        et je retombe sur cette vielle erreur :

        Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at affichage.main(affichage.java:12)

        Merci quand meme de m'avoir accorder du temps et d'avoir essayer.
        1. YOUHOU CA MARCHE!!!!!!!!!!!

          En fait le probleme venai du fait que j'avai deja installer un jar dans mon dossier mais il devai mal fonctionner et qd j'ai rajouter le tien jai oublier de virer le mien, ce que je vien de voir ^^

          Alors j'ai virer le mien, enlever le "/ " apres le nom de ma base ( je croiyai qu'il en fallai un pour finir le chemin mais il m'affichai "nom de base incorrect") et voila ca fonctionne.

          Bon bah merci du coup de main ca m'a bien dépanner, ca fesai un moment que je galèrai la dessus ^^.

          Voila @++ et merci encore.
          1. De rien,
            a+
            1. bonjour ,
              Pour me connecter à mysql via java j'ai telecharger "mysql-connector-java-5.0.8.tar.gz" dans mon bureau
              mais je ne sais rien faire avec:ou dois je le mettre,comment l'ajouter à la bibliothek de mon projet!
              jai fais toutes les instructions que vous avez dit mais j'ai toujours le meme probleme probleme:

              Sous Eclipse > Clic droit sur ton projet > Properties > Java Build Path > Onglet Libraries > Bouton Add External Jar ou Add Jar en fonction de la localisation du jar:
              je ne sé pa ou trouver le jar .
              lorske je clik sur Add External jar keske je doi selectionner ??????
              c'est urgent !!
              merci d'avance monsieur!!
          2. Au secours...
            J'ai un gros problème en ce qui concerne l'accés à la base de donnée... J'ai tout d'abord eut une erreur lang (detecté grace a un catch) que j'ai réussi a régler je ne sais pas comment (en essayant de suivre tout ce qui se disait sur tout les forum...mas ca reste flou pour moi) apparament, il ne trouvait pas mon driver.
            Puis j'ai eu l'erreur "bad handshake"... En trouvant des info par-ci par là, il m'a semblé que la version du driver n'était pas la bonne, j'ai donc voulu changé... Enfin bref, maintenant, j'arrive même plus a me remettre en configuration qui marche. Est ce que quelqu'un aurait une méthode claire avec où mettre quels fichiers et quoi mettre dans le code?

            Pour ma part, je programme avec NotePad++, MySQL 5.0, j2sdk1.4.2_13.
            Je sais, c'est un peu rétrograde comme manière de faire, mais c'est ce qu'on nous demande en cours...
            1. salut
              j`ai un probleem, je veux connecter java avec Mysql maid dans le paquette WAMP est ce que c`est possible de faire ca. je utilise le mysql de wamp
              merci
              1. slt hamid,
                j'ai le même problème que toi ,est ce que c'est possible ,et est ce que ça a marché pour toi ?
                Merci
            2. hello salut tt le monde
              je suis un débutant et je n'arrive pas à établir la connexion entre mysql jdbc et mon base des données c-à-d j'ai déja une BD mysql et eclipse et je telecharger le driver jdbc connector mais je sais cment faire le lien et c'est pour mon projet donc please vos solutions j'attent bientot ok a+
              1. Salut,
                je viens de suivre ce tuto est ca marche nickel. Merci à tous.
                Sauf qu'il faut utiliser le "Connector/J 5.0" donc le premier lien proposé et c'est bon !!
                En tout cas, si besoin d'aide on est la. ++
              2. @iboumizabonjour,
                j'ai suivi de même les étapes, sauf que... ca ne marche pas, une erreur étrange :
                à priori, après débugage c'est sur la ligne "Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost:3036/mailBox","login", "passe");

                l'erreur est : "com.mysql.jdbc.exceptions.MySQLSyntaxErrorException : you have an error in your SQL syntax : check the manual that correspond to your MySQL server version for right syntax to use near '?????????????????' at line 1

                si j'écrit à la place : Connection connexion = DriverManager.getConnection("jdbc:mysql:mailBox","login", "passe");

                j'obtient : java.sql.SQLException : No driver found for jdbc:mysql:mailBox

                quelqu'un a une idée? merci d'avance
            3. exuse mon Français!!
              ton java ne reconné pas le chemin ou le Driver Mysql se trouve alors il faut le rajouter dans ton CLASSPATH
              avec quel IDE java tu travail comme ça je vais t'aider a le rajouter ton ta CLASSPATH (netbeans ou eclipse ou kawa....)
              1. je veux savoir comment configurer eclipse3.2 pour utiliser les bases de données,
                et qu'est ce qu'il faut télécharger?
                j'ai un projet à rendre dans 15jours
                svp c trés urgent
                1. Bonjour

                  Je pense que vous devez installer le driver "mysql connector.jar" et le ajouter a l'application

                  comme ca: rightmouse click on the project
                  choose properties
                  choose Library
                  add le driver mysql

                  je pense que ca marche

                  merci
                  1. salut
                    jai fais toutes les instructions que vous avez dit mais j'ai toujours le probleme "driver not found"
                    ca fait troi jours que je suis la dessus et j'ai vraiment pas de temps
                    j'utilise eclipse, mysql connector 5.1.7
                    alors est ce que vous pouvez me dire exactement ou je dois mettre mon connector ou bien n'importe quoi qui pourrai m'aider
                    merci d'avance
                  2. @astrocybernautebonjour
                    driver not found" cela veut dir que tu n as pas de coonection
                    essayer un autre driver jdbc
                    en tous ca tu dois l`ajouter a la librairy du projet
                    I had this problem but I solved inside Netbeans
                    the name of you project is red now?
                    can write the exception that you get?
                  3. @hamidjustement je crois avoir fais la conexion correctement mais jai ourtant cette erreur alors peut etre que je me tompe quelquepart
                    je l'ai deja ajouté a la librairie de mon projet, je traville sur eclipse et jarrive a voir mon conector dans le menu à gauche
                    et non je n'ai pas une erreur en rouge dans mon projet
                    j'avais crée mon propre post pour poser ma question et jy ai ajouté tout mon code si tu veux le voir :
                    http://www.commentcamarche.net/forum/affich 12601971 probleme driver mysql non trouve java?#dernier

                    thanks you
                2. pour me connecter à mysql j'ai telecharger "mysql-connector-java-5.0.8.tar.gz" dans mon bureau
                  mais je ne sais rien faire avec:ou dois je le mettre,comment l'ajouter à la bibliothek de mon projet!
                  jai fais toutes les instructions que vous avez dit mais j'ai toujours le meme probleme probleme:

                  Sous Eclipse > Clic droit sur ton projet > Properties > Java Build Path > Onglet Libraries > Bouton Add External Jar ou Add Jar en fonction de la localisation du jar:
                  je ne sé pa ou trouver le jar .
                  lorske je clik sur Add External jar keske je doi selectionner ??????
                  c'est urgent !!
                  merci d'avance les experts!!
                  • 1
                  • 2