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 connexion à une BD MySql


Sujet :

JDBC Java

  1. #1
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut Problème de connexion à une BD MySql
    Bonjour à tous.
    Je rencontre un problème avec la connexion à une base de données mysql sous Java.

    Je vous situe un peu le contexte des choses.

    1-> J'ai installé correctement un pont JDBC-ODBC: mysql-connector-odbc-5.1.5-win32.msi

    2-> J'ai ajouté une nouvelle source de données qui pointe sur ma base mysql, préalablement crée. Cette base a pour nom: ma_bd.

    Le test de connexion m'assure que les choses fonctionnent jusque là bien.

    Voici mon code java: (juste un petit test de connexion à la base de données)

    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
     
    		//Chargement du pilote
    		try {
    			 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			 System.out.println("Pilote chargée avec succès");
    		}
    		catch(ClassNotFoundException e){
    			System.out.println("Impossible de charger le pilote");
    		}
     
    		//Connexion à la base de données
    		try {
    			String url="jdbc:mysql:ma_bd";
    			String user="le_user";
    			String password="mot_de_passe";
     
    			con=DriverManager.getConnection(url, user, password);
     
    			System.out.println("Connexion à la BD réussie.");
    		}
    		catch(SQLException e){
    			System.out.println("Connection à la base de données" +
    					" échouée.");
     
    			System.out.println(e.getMessage());
    		}
    Et j'ai le resultat suivant:

    Pilote chargée avec succès
    Connection à la base de données échouée.
    No suitable driver
    J'ai encore le même resultat quand je remplace
    con=DriverManager.getConnection(url, user, password);
    par
    con=DriverManager.getConnection(url);
    Je comprends pas ce qui ne vas pas.

    A priori cela vient du driver chargé. Mais comment et pourquoi?

    Quelqu'un peut-il m'aider?

  2. #2
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    essais de mettre en url jdbc:mysql:localhost/mabd l'adresse de ta base de donnée je crois que ca ira. enfin j'espère. bon courage.

  3. #3
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Bonjour. Merci pour ta réponse, mais ça ne fonctionne pas.

    j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String url="jdbc:mysql:localhost/ma_bd";
    et même ceci aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String url="jdbc:mysql:localhost:3306/ma_bd";
    Mais rien aussi.

    Toujours le même resultat...

    Je précise que je suis en monoposte, donc localhost est bien l'adresse de la machine.

    Merci

  4. #4
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Quand j'ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    catch(SQLException e){
    			System.out.println("Connection à la base de données" +
    					" échouée.");			
    			System.out.println(e.getMessage());
    			
    			e.printStackTrace();
    		}
    J'obtiens ceci comme résultat:
    Pilote chargée avec succès
    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(Unknown Source)
    Connection à la base de données échouée.
    No suitable driver
    at java.sql.DriverManager.getConnection(Unknown Source)
    at TestConnexion.main(TestConnexion.java:30)

  5. #5
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    J'ai finalement opté pour un driver de type 4: un pure Java.
    Il s'agit du mysql-connector-java-5.1.7.zip.

    Je l'ai parametré dans mon classpath, puis j'ai modifié le code précédent en ceci:

    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
     
    	//Chargement du pilote
    		try {
    			Class.forName("com.mysql.jdbc.Driver"); 
    			System.out.println("Pilote chargée avec succès");
    		}
    		catch(ClassNotFoundException e){
    			System.out.println("Impossible de charger le pilote " +
    					e.getMessage());
    		}
     
    		//Connexion à la base de données
    		try {
    			String url="jdbc:mysql://localhost/mabd";
    			String user="le_user";
    			String password="mot_password";
     
    			con=DriverManager.getConnection(url, user, password);
     
    			System.out.println("Connexion à la BD réussie.");
    		}
    		catch(SQLException e){
    			System.out.println("Connection à la base de données" +
    					" échouée.");
     
    			e.printStackTrace();
    		}
    Et j'obtiens
    Pilote chargée avec succès
    Connexion à la BD réussie.


    Tout est donc ok.

    Mais ça me plairait quand même de savoir pourquoi la connexion via ODBC échouait.
    J'attends donc un peu avant de marquer la discussion .

    Merci pour votre participation.

  6. #6
    Membre chevronné Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Par défaut
    Salut

    Si tu utilises le pont ODBC/JDBC je pense me souvenir que tes urls doivent être de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:odbc:base_de_donnees
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:mysql:base_de_donnees
    Par contre il est très fortement déconseillé de passer par ce pont.

  7. #7
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Effectivement, rberthou.
    ça marche très bien.
    Et avec ça même, plus besoin de mettre les paramètres de connexion: user et mot de passe.

    Voici le nouveau code qui marche:
    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
     
    	public static void main(String[] args) {
     
    		Connection con=null;
     
    		//Chargement du pilote
    		try {
    			 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			 System.out.println("Pilote chargée avec succès");
    		}
    		catch(ClassNotFoundException e){
    			System.out.println("Impossible de charger le pilote");
    		}
     
    		//Connexion à la base de données
    		try {
    			String url="jdbc:odbc:ma_bd";
     
     
    			con=DriverManager.getConnection(url);
     
    			System.out.println("Connexion à la BD réussie.");
    		}
    		catch(SQLException e){
    			System.out.println("Connection à la base de données" +
    					" échouée.");			
    			System.out.println(e.getMessage());
     
    			e.printStackTrace();
    		}
    Je crois que tout es bien qui finit bien.
    C'est donc résolu à présent.

    Merci à tous pour votre participation

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

Discussions similaires

  1. probléme de connexion à une base mysql
    Par Jaafar_scorpion dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 01/01/2013, 12h24
  2. Problème de connexion à une base MySQL
    Par Jezlife dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/12/2011, 11h17
  3. Problème de connexion à une base MySQL
    Par ctenot dans le forum NetBeans Platform
    Réponses: 8
    Dernier message: 23/11/2011, 03h59
  4. Réponses: 1
    Dernier message: 17/01/2011, 09h11
  5. Problème de connexion à une BD MySQL
    Par petite bohemienne dans le forum Administration
    Réponses: 1
    Dernier message: 20/06/2008, 14h23

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