Connexion PhpMyAdmin avec Eclipse

Fermé
Numbyscuit Messages postés 18 Date d'inscription mercredi 20 juin 2012 Statut Membre Dernière intervention 23 janvier 2013 - 23 janv. 2013 à 16:54
 Nadong - 2 avril 2014 à 22:56
Bonjour,

J'ai une base statistiquesdb créée avec PhpMyAdmin, situé dans localhost (j'utilise Wamp, toussa, et je n'ai pas modifié mes paramètres pseudo administrateur/mdp par défaut). Afin de m'assurer que la connexion avec la BDD fonctionne, j'utilise le code ci-dessous sensé m'afficher les éléments de la colonne "index" située dans la table "fichier". Mais rien ne se passe...

import java.io.*;
import java.sql.*;

public class TestBDD {

	/**
	 * @param args

	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		try {
	           Class.forName("com.mysql.jdbc.Driver").newInstance();
	           String url = "jdbc:mysql://localhost/phpmyadmin/statistiquesdb"; // a JDBC url
	           String username = "root";
	           String password = "";
	           Connection connection = DriverManager.getConnection(url, username, password); 
	           	
	           
	           Statement stat = connection.createStatement();
	           ResultSet resultat = stat.executeQuery("SELECT * FROM fichier");
	           System.out.println(resultat.getString("index"));
	           resultat.close();
               
               stat.close();
               connection.close();

		} catch (Exception ex) {
	           // traitement de l'erreur
	       }

		
	}
}


Merci d'avance pour vos réponses. Le code a été fait avec des fragments trouvé çà et là sur le net, la documentation a ce sujet étant très souvent anglophone et/ou mal expliquée.

5 réponses

Mint14 Messages postés 4 Date d'inscription dimanche 20 janvier 2013 Statut Membre Dernière intervention 23 février 2013 1
24 janv. 2013 à 23:57
salut..

j'ai une meme application qui marche bien
1. ajouter cette ligne : resultat.next();
après la ligne suivante :
ResultSet resultat = stat.executeQuery("SELECT * FROM fichier");
("resultat.next();"est obligatoire pour ce positionner sur la première ligne de la table).

c'es ca marche pas :
2. changer le chemin pour ta base comme suite :
String url = "jdbc:mysql://localhost/statistiquesdb";
bonne chance.
1
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
25 janv. 2013 à 00:09
Petite remarque au passage : c'est une très mauvaise idée de court-circuiter les Exceptions, parce qu'en cas d'erreur il n'y a aucun moyen de savoir ce qui s'est passé. Tu devrais soit faire quelque chose dans le traitement de l'erreur (au minimum un affichage de celle-ci), soit enlever ton try/catch et laisser le throws Exception faire son travail.

catch (Exception ex)
{
    ex.printStackTrace();
}

Une fois cette modification faite, j'imagine que ton programme va être un peu plus bavard sur le problème, donc indiques nous quelle est l'erreur affichée...
0
Bonjour à tous,

Si je peux me permettre j'ai utilisé ce code, car dans ma recherche pour une connexion java eclipse >> mysql PHPMyAdmin je suis tombé sur ce forum.
En reprenant le code ci-dessus je retrouve les erreurs suivantes :
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at pDicoBDD.DicoBDD.main(DicoBDD.java:15)
Pourriez-vous me donner un petit coup de main ou peut-être préfèreriez-vous que j'ouvre une nouvelle conversation pour ce problème ?

Cordialement
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
1 avril 2014 à 19:34
Bonsoir,

Avant de faire
Class.forName("com.mysql.jdbc.Driver")
, il faut que tu ajoutes le connecteur MySql dans ton projet, sinon il ne connaîtra pas la classe Driver. Tu dois donc télécharger le jar sur https://dev.mysql.com/downloads/connector/j/ puis l'ajouter à ton classpath
0
Bonsoir,

Merci bien pour ce lien...
Le téléchargement s'est bien passé.
J'ai encore un problème est-ce à cause de l'emplacement ?
Voici le message :
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'phpmyadmin/dicobdd'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1748)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2321)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at pDicoBDD.DicoBDD.main(DicoBDD.java:19)
Je suis désoler j'ai encore quelque problème pour déchiffrer les messages d'erreur d'Eclipse...

Merci bien pour votre aide
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
2 avril 2014 à 22:36
Bonsoir,

Les messages d'erreurs d'exécutions ne sont pas ceux d'Eclipse, mais directement ceux de Java. Eclipse n'affiche ses propres messages que pour les avertissements ou erreurs de compilation (qu'il souligne en jaune ou rouge)

Ici le problème est assez clair, je prends la première et la dernière ligne de la stack trace :
Unknown database 'phpmyadmin/dicobdd' at pDicoBDD.DicoBDD.main(DicoBDD.java:19)

Alors il faudrait regarder ton code, mais dans ta classe DicoBDD, ligne 19, tu configures une base de données "phpmyadmin/dicobdd" qu'il ne connaît pas. Soit parce qu'elle n'existe pas, soit parce que ton serveur n'est pas allumé ou mal configuré, ou tout simplement à cause d'une mauvaise utilisation des méthodes Java pour s'y connecter.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je voie, merci bien je vais regarder ça !!!
0