Connexion MySQL en JAVA

Bonjour
j'ai besoin de me connecter a une base MySQL en java mais je sais pas comment faire j'ai telecharcger le driver mm.mysql mais je n'arrive pas a me connecter

42 réponses

Résumé de la discussion

Connexion à une base MySQL en Java et difficultés liées au chargement du driver JDBC sont au cœur des échanges, certains utilisateurs évoquant des erreurs de classpath. Des réponses suggèrent des ressources pratiques, comme un tutoriel de connexion MySQL via Java, des conseils sur le chemin d'accès au driver et des exemples de configuration. En cas de souci, certains points reviennent, notamment la syntaxe du classpath, l'emplacement du driver dans le système et l'utilisation d'exemples de code JDBC. D'autres interventions touchent des aspects pratiques comme le port de connexion, la primauté des pilotes compatibles et des précautions lors de l'importation des bibliothèques.

Bobot (l’IA à votre service)
  1. Bonjour,
    voilà un tutoriel très simple pour faire une connexion Mysql en Java

    http://www.javamafia.com/langage-java-j2ee/tutoriels/54-tuto-connexion-mysql-via-java.html

    Bonne Chance :)
    7
    1. a tout hasard la syntaxe du class path c'est bien chemin de ton source;chemin du drivers ?
      1
      1. Modérateur
        il me semble, voici un exemple d'un exercice

        package exercicesjdbc;
        

        import java.sql.*;

        public class GestionCafe {

        final String myBridge = "sun.jdbc.odbc.JdbcOdbcDriver";
        private static Connection con;
        private Statement sta;

        public GestionCafe()throws ClassNotFoundException,SQLException {
        doConnection();
        }

        private void doConnection()throws ClassNotFoundException,SQLException{

        Class.forName(myBridge);
        con = DriverManager.getConnection("jdbc:odbc:COFFEEBREAKDB","","");
        sta = con.createStatement();
        }

        public void createTables() throws SQLException{

        int sales = sta.executeUpdate("CREATE TABLE Sales (cof_id INTEGER, sup_id INTEGER, price INTEGER, amount INTEGER)");
        int suppl = sta.executeUpdate("CREATE TABLE Suppliers(sup_id INTEGER, sup_name VARCHAR(50), street VARCHAR(50), city VARCHAR(20), state VARCHAR(2),zip INTEGER)");
        int coffees = sta.executeUpdate("CREATE TABLE DataCoffees(cof_id INTEGER, cof_name VARCHAR(20))");
        int invent = sta.executeUpdate("CREATE TABLE DataInventory(cof_id INTEGER,amount INTEGER)");
        }

        public void fillSales()throws SQLException{

        int set1 = sta.executeUpdate("INSERT INTO Sales VALUES(1,101,8,20)");
        int set2 = sta.executeUpdate("INSERT INTO Sales VALUES(2,49,9,10)");
        int set3 = sta.executeUpdate("INSERT INTO Sales VALUES(3,150,10,5)");
        int set4 = sta.executeUpdate("INSERT INTO Sales VALUES(4,101,9,40)");
        int set5 = sta.executeUpdate("INSERT INTO Sales VALUES(5,49,10,20)");
        }
        public void fillSuppliers()throws SQLException{

        int set1 = sta.executeUpdate("INSERT INTO Suppliers VALUES(101,'Acme,inc','99 Market Street','Groundsville','CA',95199)");
        int set2 = sta.executeUpdate("INSERT INTO Suppliers VALUES(49,'Superior Coffee','1 Party Place','Mendocino','CA',95460)");
        int set3 = sta.executeUpdate("INSERT INTO Suppliers VALUES(150,'The High Ground','100 Coffee Lane','Meadows','CA',93966)");
        }

        public void fillCoffees()throws SQLException{

        int set1 = sta.executeUpdate("INSERT INTO DataCoffees VALUES(1,'Colombian')");
        int set2 = sta.executeUpdate("INSERT INTO DataCoffees VALUES(2,'French_Roast')");
        int set3 = sta.executeUpdate("INSERT INTO DataCoffees VALUES(3,'Espresso')");
        int set4 = sta.executeUpdate("INSERT INTO DataCoffees VALUES(4,'Colombian_Decaf')");
        int set5 = sta.executeUpdate("INSERT INTO DataCoffees VALUES(5,'French_Roast_Decaf')");
        }
        public void fillInventory()throws SQLException{

        int set1 = sta.executeUpdate("INSERT INTO DataInventory VALUES(1,100)");
        int set2 = sta.executeUpdate("INSERT INTO DataInventory VALUES(2,300)");
        int set3 = sta.executeUpdate("INSERT INTO DataInventory VALUES(3,250)");
        int set4 = sta.executeUpdate("INSERT INTO DataInventory VALUES(4,500)");
        int set5 = sta.executeUpdate("INSERT INTO DataInventory VALUES(5,750)");
        }
        public void consultTableSales()throws SQLException{

        ResultSet query = sta.executeQuery("SELECT cof_id,sup_id,price FROM Sales WHERE cof_id=3 OR cof_id=5");
        while(query.next()){
        System.out.println( query.getInt(1)+", "+query.getInt(2)+", "+query.getInt(3));
        }
        }

        public static void main (String args[]) {

        try{
        GestionCafe gc = new GestionCafe();
        //gc.createTables();
        //gc.fillSales();
        //gc.fillSuppliers();
        //gc.fillCoffees();
        //gc.fillInventory();
        gc.consultTableSales();
        con.close();
        }
        catch(ClassNotFoundException ce){

        System.out.println("Class not found exception "+ ce.getMessage());
        }
        catch(SQLException se){

        System.out.println("SQL Exception occured "+ se.getMessage());
        System.out.println("SQL Exception occured "+ se.getSQLState());
        }
        }
        }


        Chouba
        Casque Bleu forumique
        1
        1. Modérateur
          salut

          peux tu montrer la manière dont tu t'y prends ???

          Chouba
          Casque Bleu forumique
          0
          1. Voila la maniere dont je m'y prend je pense que le probleme viens de cette ligne: ConnAccess=DriverManager.getConnection("jdbc:odbc:BD1");
            J'ai copier le drivers dans mon environnement de travail et j'ai creer le class path(correctement je pense)
            Mais je sais pas comment faire pour jdbc


            import java.sql.*;
            import java.util.*;
            import java.sql.Connection;
            import java.sql.DriverManager;

            public class Connect {

            public static Connection Conn;
            public static int Choix;

            public static void afficherDrivers()
            {
            //affichage de la liste des drivers charges
            Enumeration drivers=DriverManager.getDrivers();
            System.out.println("Liste des drivers charges");
            while(drivers.hasMoreElements())
            {
            System.out.println(drivers.nextElement());
            }
            }
            /*----------------------------------------------------
            Cette methode permet de charger le driver necessaire
            pour acceder a la base de donnée MySQL
            ----------------------------------------------------*/

            public static void ChargerDriver()
            {
            //chargement du driver
            try
            {
            Class.forName("org.gjt.mm.mysql.Driver");
            }
            catch(ClassNotFoundException e)
            {
            System.out.println("erreur: "+e);
            }
            }
            /*----------------------------------------------------
            Cette methode nous permet de nous connecter
            a la base de donnée
            ----------------------------------------------------*/
            public static Connection ConnexionBase()
            {
            try
            {//Connection ConnAccess=DriverManager.getConnection("jdbc:odbc:BD1");
            Conn=DriverManager.getConnection("jdbc:odbc:xindoc");
            System.out.println("Connection MySQL effectuee\n\n\n");
            Conn.setAutoCommit(false);
            Conn.close();
            }
            catch(SQLException e)
            {
            System.out.println("erreur ConnexionBase"+e);
            }
            return Conn;
            }

            }

            0
        2. Modérateur
          salut

          as tu enregistré ta base de données dans les sources de données odbc de ton système d'exploitation?

          Chouba
          Casque Bleu forumique
          0
          1. Ben en fait c'est ca mon probleme je ne sais pas comment fair e
            0
            1. Modérateur
              re

              quel système d'exploitation?? W2k?

              Chouba
              Casque Bleu forumique
              0
              1. Modérateur
                bon...

                Démarrer/Paramètres/Panneau de Configuration/Outils d'administration/Sources de données (ODBC)

                tu vas dans l'onglet "sources de données fichier"

                tu cliques sur ajouter, tu sélectionnes le pilote à associer, ensuite tu sélectionne ta bd. Tu auras un écran de confirmation, puis un écran de configuration ou tu devras de nouveau sélectionner la base et puis voilà

                8)

                Chouba
                Casque Bleu forumique
                0
                1. oui ca je l'ai fait mais quand je compile mon code ca ne marche pas
                  j'ai selectionner ma base etc....
                  mais j'ai cette erreur

                  Liste des drivers charges
                  erreur: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
                  Liste des drivers charges
                  erreur ConnexionBasejava.sql.SQLException: No suitable driver
                  0
                  1. Modérateur
                    salut

                    essaye ça

                    ConnAccess=DriverManager.getConnection("jdbc:odbc:BD1","",""); 
                    


                    Chouba
                    Casque Bleu forumique
                    0
                    1. j'ai essayer mais ca ne marche pas
                      aurais tu une autre suggestion?
                      0
                      1. Modérateur
                        je cherche, je cherche

                        Chouba
                        Casque Bleu forumique
                        0
                        1. j'ai un exemple du mem type (mais moin long)
                          mais je ne pense pas que ce resolve le probleme de Mysql
                          0
                          1. Modérateur
                            non, désolé 8(((

                            Chouba
                            Casque Bleu forumique
                            0
                            1. tu as lu mon mesage concernant le classpath ?
                              0
                              1. Modérateur
                                de quel class path tu veux parler?

                                Chouba
                                Casque Bleu forumique
                                0
                                1. du classpath que tu saisi quand tu fait un clic droit sur poste de travail puis tu vas sur l'onglet avancee puis variable d'environnement
                                  0
                                  1. Modérateur
                                    perso, je n'utilise pas les variables d'environnement pour ce genre d'opération.

                                    Chouba
                                    Casque Bleu forumique
                                    0
                                    1. comment tu fait alors?
                                      si tu as une suggestion je suis preneuse
                                      0
                                      • 1
                                      • 2
                                      • 3