{MySQL} connexion à une bd mysql dans java

Bonjour,
J'ai écrit ce code en m'inspirant des recommendations du forum Connection a Mysql via java, et je n'ai pas d'erreur. Seulement lorque je lance le programme, rien ne ce passe à l'écran, bien que la table contienne des données. J'ai introduit des erreurs expresses pour vérifier que le programme est bien exécuté et c'est le cas. Qu'lqu'un peut-il me donner une idée? Je ne vois pas d'anomalie, mais je n'ai pas le résultat escompté.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.util.*;
import java.text.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class ListeSujet extends JFrame
{

// Constructeur. Il recoit le Vector d'employés
public ListeSujet()
{

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

try{
Class.forName(pilote);
Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/gfapt","root","sa");

Statement instruction = connexion.createStatement();

ResultSet resultat = instruction.executeQuery("select * from tsujets");

while(resultat.next()){

System.out.println("---------------------------");
System.out.println("ID SUJET: "+resultat.getInt("id_sujet"));
System.out.println("Type sujet: "+resultat.getInt("type"));
System.out.println("Couleur: "+resultat.getString("couleur"));
System.out.println("Sexe: "+resultat.getString("sexe"));

}
}
catch (Exception e){

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

}
}
Configuration: Windows XP Internet Explorer 7.0

3 réponses

  1. Contributeur
    Es-tu sûr que cette requête : "select * from tsujets" retourne bien des données?
    1. Oui voici le résultat. Il y a un enregistrement dans la table.

      mysql> use gfapt;
      Database changed
      mysql> select * from tsujets;
      +----------+---------+------+--------+-------------+-------------+--------------
      -+----------+--------+
      | id_sujet | couleur | sexe | race | date_entree | date_sortie | poids_initial
      | type | stype |
      +----------+---------+------+--------+-------------+-------------+--------------
      -+----------+--------+
      | 1 | Noire | M | Locale | 2010-01-01 | 2010-02-10 | 10
      | Ruminant | Mouton |
      +----------+---------+------+--------+-------------+-------------+--------------
      -+----------+--------+
      1 row in set (0.01 sec)
  2. Contributeur
    Mais comment lances-tu ce programme? Bat?
    1. J'utilise Eclipse. Le menu est le suivant :

      public void actionPerformed(ActionEvent e)
      {
      if(e.getSource() == connexion);
      //PanelConnexion();
      else if(e.getSource() == quit)
      System.exit(0);
      else if(e.getSource() == sujets)
      new PanelAjoutSujet(tabSjt);
      else if(e.getSource() == lsujet)
      new ListeSujet();
      else if(e.getSource() == lponte)
      new ListePonte();
      else if(e.getSource() == about)
      JOptionPane.showMessageDialog(this,
      new JLabel(new ImageIcon("objectifs.jpg")),
      "À propos...",
      JOptionPane.INFORMATION_MESSAGE);
      } // Fin de la méthode actionPerformed

      // Main
      public static void main(String args[])
      {
      new GFerme();
      }
      }
  3. Contributeur
    Difficile de comprendre le programme avec un partie du code seulement.
    1. Voici le programme complet. Il est long et c'est pour cette raison que j'avais donné la partie d'appel des procédures.

      /**
      * Title: Gestion d'une Ferme
      * Description: Classe principale. Elle contient le main du programme.
      * Auteur : Almoustapha Coulibaly
      */

      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.*;
      import java.util.*;
      import java.io.*;

      public class GFerme extends JFrame implements ActionListener
      {
      private Vector tabSjt = new Vector();

      private JMenuBar menubar = new JMenuBar();

      private JMenu fichier = new JMenu("Fichier");
      private JMenuItem connexion = new JMenuItem("Connexion");
      private JMenuItem quit = new JMenuItem("Quitter");

      private JMenu gestion = new JMenu("Gestion");
      private JMenuItem sujets = new JMenuItem("Sujets animaux");
      private JMenuItem soin = new JMenuItem("Soins");
      private JMenuItem portee = new JMenuItem("Portées");
      private JMenuItem ponte = new JMenuItem("Pontes");

      private JMenu rapport = new JMenu("Rapports");
      private JMenuItem lsujet = new JMenuItem("Liste des Sujets");
      private JMenuItem lsoin = new JMenuItem("Liste des soins");
      private JMenuItem lportee = new JMenuItem("Liste des portées");
      private JMenuItem lponte = new JMenuItem("Liste des pontes");

      private JMenu aide = new JMenu("Aide");
      private JMenuItem about = new JMenuItem("À propos...");

      private JLabel image = new JLabel(new ImageIcon("banniere.jpg"));

      private JFileChooser fileChooser = new JFileChooser();

      public GFerme()
      {
      fileChooser.setCurrentDirectory(new File("."));
      fileChooser.addChoosableFileFilter(new FiltreExtension("sujet",
      "Fichier sujets"));
      fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

      connexion.addActionListener(this);
      fichier.add(connexion);
      fichier.addSeparator();
      quit.addActionListener(this);
      fichier.add(quit);

      sujets.addActionListener(this);
      gestion.add(sujets);
      soin.addActionListener(this);
      gestion.add(soin);
      portee.addActionListener(this);
      gestion.add(portee);
      ponte.addActionListener(this);
      gestion.add(ponte);

      lsujet.addActionListener(this);
      rapport.add(lsujet);
      lsoin.addActionListener(this);
      rapport.add(lsoin);
      lportee.addActionListener(this);
      rapport.add(lportee);
      lponte.addActionListener(this);
      rapport.add(lponte);

      about.addActionListener(this);
      aide.add(about);

      menubar.add(fichier);
      menubar.add(gestion);
      menubar.add(rapport);
      menubar.add(aide);

      setJMenuBar(menubar);
      getContentPane().setLayout(new BorderLayout(10, 10));
      getContentPane().add(image, BorderLayout.CENTER);
      setTitle("Gestion d'une Ferme Agro Pastorale");
      setSize(1025, 737);
      //pack();
      setVisible(true);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      } // Fin du constructeur

      public void actionPerformed(ActionEvent e)
      {
      if(e.getSource() == connexion);
      //PanelConnexion();
      else if(e.getSource() == quit)
      System.exit(0);
      else if(e.getSource() == sujets)
      new PanelAjoutSujet(tabSjt);
      else if(e.getSource() == lsujet)
      new ListeSujet();
      else if(e.getSource() == lponte)
      new ListePonte();
      else if(e.getSource() == about)
      JOptionPane.showMessageDialog(this,
      new JLabel(new ImageIcon("objectifs.jpg")),
      "À propos...",
      JOptionPane.INFORMATION_MESSAGE);
      } // Fin de la méthode actionPerformed

      // Main
      public static void main(String args[])
      {
      new GFerme();
      }
      }