Difficulté d'afficher le contenu de la table de ma bdd mysql [Résolu]

Signaler
Messages postés
21
Date d'inscription
dimanche 6 avril 2014
Statut
Membre
Dernière intervention
15 janvier 2020
-
Vit@l
Messages postés
21
Date d'inscription
dimanche 6 avril 2014
Statut
Membre
Dernière intervention
15 janvier 2020
-
Bonjour,
Je suis nouveau en programmation JDBC, et novice en utilisant mysql DB.
Le problème que j'ai est de parvenir à afficher le contenu de la table "Etudiant" de ma base de données "base" que j'ai d'abord créé via workbench de mysql.
Ce qui me fait exaspérer c'est qu'Eclipse ne m'envoie aucune erreur (ce qui me parrait logique car je pense avoir tout mis en ordre). Je vous remercie d'avance de bien me sortir de ce gouffre car ça fait déjà 3 jours que je suis hanté par ce problème.

voici un extrait du code


et la table Etudiant sur mysql WorkBench est


Configuration: Windows / Firefox 70.0

4 réponses

Messages postés
16102
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 janvier 2020
2 499
Bonjour,

Pour se connecter à une base de données, il te faut un driver JDBC.
Dans le cas de MySql tu le trouveras ici : https://dev.mysql.com/downloads/connector/j/

Il faut charger le driver au début du programme avec
Class.forName("com.mysql.jdbc.Driver");


NB. Sur le forum, merci de poster du code dans les balises <code java>Ton Code</code>, c'est plus pratique qu'une impression écran car cela permet de copier-coller ton code et le modifier pour te le corriger.
Messages postés
21
Date d'inscription
dimanche 6 avril 2014
Statut
Membre
Dernière intervention
15 janvier 2020
3
merci pour ta réponse; au fait je n'ai pas de problème de connexion car j'ai choisi la méthode selon laquelle on ajoute une librairie (j'ai ajouté à mon projet mysql-connector.jar) ...
le problème est au niveau de l'instruction while(result.next()){...} où rien de ce qui est entre accolades ne s'exécute
Messages postés
21
Date d'inscription
dimanche 6 avril 2014
Statut
Membre
Dernière intervention
15 janvier 2020
3
Toutefois tenant compte de ta remarque, voici le code mais sans changement
  
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;


public class ConnexionMySQL {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}


		try {
			Connection con=DriverManager.getConnection("jdbc:mysql://localHost/base","root","ilkab");
			Statement stmt=con.createStatement();
			ResultSet result=stmt.executeQuery("select * from etudiant");
			ResultSetMetaData resMD=result.getMetaData();
			
			while(result.next()){
				for(int i=1;i<resMD.getColumnCount();i++){
					System.out.println(result.getObject(i).toString());
				}
		//		System.out.println("Id: "+result.getInt("id")+", nom: "+result.getString("nom"));
			}
			stmt.close();
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

Est-ce un problème de base de données?
Messages postés
21
Date d'inscription
dimanche 6 avril 2014
Statut
Membre
Dernière intervention
15 janvier 2020
3
Au fait, j'ai trouvé!
le problème était que lorsque je charge les données dans ma base via mysql workbench, celles-ci n'y restent pas... raison pour laquelle aucune ligne d'affichage lors de la lecture du resultSet.
mais lorsque j'introduis mes données via du code sql mes tables sont bien remplies et donc ça marche.
La question pourrait se transposer en "comment manipuler mysql workbench pour que mes enregistrements aillent réellement se stocker dans les tables ?". Mais puisque ce n'est pas ma préoccupation du moment, je vous remercie pour votre participation