Partage
  • Partager sur Facebook
  • Partager sur Twitter

java et mysql

récupérer des données de la base

Sujet résolu
    24 mai 2009 à 1:19:11

    bonjour à tous,
    j'ai créé un code java et je veux quand je clique sur un bouton récupérer des données de ma base(select * from table where condition) et l'afficher dans un Label; sauf que dans le actionPerformed je sais pas quoi mettre pour que ca marche,
    aidez moi svp
    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2009 à 2:19:37

      Bonsoir,

      Il faut que tu créé une class "manager" qui te permet de te connecter, deconnecter.

      Voilà un exemple de ce que ça peut donner pour mysql :

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.sql.Statement;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.Vector;
      
      import javax.swing.JOptionPane;
      
      import org.apache.commons.configuration.ConfigurationException;
      import org.apache.commons.configuration.XMLConfiguration;
      
      
      /**
       * Class permettant la connexion et de rechercher les codes d'accés en base
       * 
       * @author DME0256
       * @copyright (C) 2009
       * @version 9.1.1.0
       * @see
       * @revision Création de la classe
       *           <ul>
       *           <li>20 janv. 09 / 9.1.1.0 / DME0256 : Création de la classe</li>
       *           </ul>
       */
      public final class Manager {
      
      	/**
      	 * CONSTRUCTEUR
      	 */
      	private Manager() {
      
      	}
      
      	/**
      	 * @param s_config
      	 *            désigne le fichier environnement.xml qui est le fichier
      	 *            d'environnements
      	 */
      	private static XMLConfiguration s_config;
      
      	/**
      	 * Méthode permetant de créer la connexion
      	 * 
      	 * @param p_environnement
      	 *            correspond à l'environnement de travail choisi
      	 * @return la Connexion
      	 */
      	private static Connection getConnectionMC(final String p_environnement) {
      
      		Connection connexion = null;
      
      		try {
      			Class.forName("com.mysql.jdbc.Driver");
      
      			s_config = new XMLConfiguration(".\\par\\environnements.xml");
      
      			String base = "";
      			String login = "";
      
      			int i = 0;
      			int nbEnvironnement = s_config
      					.getMaxIndex("environnements.environnement");
      			boolean trouve = false;
      			while (i <= nbEnvironnement && !trouve) {
      				if (p_environnement.equals(s_config
      						.getString("environnements.environnement(" + i
      								+ ").[@name]"))) {
      					base = s_config.getString("environnements.environnement("
      							+ i + ").mc.base");
      					login = s_config.getString("environnements.environnement("
      							+ i + ").mc.login");
      					trouve = true;
      				}
      				i++;
      			}
      
      			connexion = DriverManager.getConnection("jdbc:mysql://localhost/" + base, login, login);
      
      		} catch (ClassNotFoundException ex) {
      			JOptionPane.showMessageDialog(null, "Classe introuvable : "
      					+ ex.getMessage());
      		} catch (SQLException ex) {
      			JOptionPane.showMessageDialog(null, "Erreur JDBC : "
      					+ ex.getMessage());
      		} catch (ConfigurationException ex) {
      			JOptionPane.showMessageDialog(null,
      					"Erreur de lecture du fichier de configuration : "
      							+ ex.getMessage());
      		}
      
      		return connexion;
      	}
      
      	/**
      	 * Méthode qui permet la fermeture de la connexion
      	 * 
      	 * @param p_connexion
      	 *            est le parametre de connexion
      	 * @param p_instruction
      	 *            est le parametre pour l'instruction
      	 * @param p_resultat
      	 *            est le parametre pour le resultat de la requete
      	 */
      	private static void closeAll(final Connection p_connexion,
      			final Statement p_instruction, final ResultSet p_resultat) {
      
      		try {
      			if (p_resultat != null) {
      				p_resultat.close();
      			}
      			if (p_instruction != null) {
      				p_instruction.close();
      			}
      			if (p_connexion != null) {
      				p_connexion.close();
      			}
      		} catch (SQLException ex) {
      			ex.printStackTrace();
      		}
      
      	}
      }
      


      Après tu fais une requête avec ta connection, tu récupères tes résultats et tu n'as plus qu'a remplir ton ou tes labels. :)

      Si c'est pas assez clair fait le moi savoir.
      • Partager sur Facebook
      • Partager sur Twitter
        24 mai 2009 à 2:37:56

        Oh lala

        Donnez cela comme ça, c'est un peu fort, il faut laisser chercher, sinon elle ne pige plus rien après, et on a des topics en plus ^^

        Pourtant il ya le nouveau tuto de cysboy qui parle de la connection JDBC.
        • Partager sur Facebook
        • Partager sur Twitter
        J'ai tous les badges d'OpenClassrooms.
          24 mai 2009 à 2:53:58

          J'ai juste donné des fonction de connexion et déconnexion pour mysql. C'est toujours pareil c'est pas bien grâve je pense, après il faut juste qu'elle comprenne les étapes.

          Par contre dans l'exemple que j'ai fait là, j'utilise une fichier XML qui contient une liste de base de données. La boucle dans connexion permet de récupérer les données de la base sélectionnée (nom de la base + login + mot de passe). Mais si tu n'as qu'une base de données, tu n'as qu'a directement écrire en dur le nom de la base de données et les identifiants.
          • Partager sur Facebook
          • Partager sur Twitter
            24 mai 2009 à 12:19:52

            excusez moi, mais ca je sais le faire :s et c'est pas ce que je demande,
            je sais faire une connexion, mais je sais pas récupérer les données pour les mettre dans un label : c'était ca ma question

            (désolée parceque j'ai pas clarifié ce que je voulais vraiment désolée)
            alors?
            • Partager sur Facebook
            • Partager sur Twitter
              24 mai 2009 à 12:27:16

              Et bien pour faire des SELECT sur ta base de données regardes ce chapitre du tuto => http://www.siteduzero.com/tutoriel-3-1 [...] s-sa-bdd.html
              • Partager sur Facebook
              • Partager sur Twitter
                24 mai 2009 à 12:38:53

                re salut,
                je sais faire des select et j'ai lu le tuto, mais je ne sais pas afficher le resultat de ma requete dans un label !!!!
                • Partager sur Facebook
                • Partager sur Twitter
                  24 mai 2009 à 12:43:15

                  Ahhh alors il suffit de faire tonLabel.setText("Ce que tu veux afficher");
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 mai 2009 à 13:22:53

                    merci beaucoup, c'est ce qui me fallait
                    maintenant en améliorant mon programme, j'ai essayé de creer un TextFiel en y en entrant une valeur et on cliquant sur un bouton, je devrais récupérer une autre valeur de mon tableau: c à d:

                    Statement stmt2 = conn.createStatement();
                               stmt2.executeQuery("SELECT * from professeur where id=jTextField1.getText() ");
                               ResultSet rs = stmt2.getResultSet( );
                    int num = 0;
                                while (rs.next()) {
                                    jLabel1.setText(rs.getString(2));
                               }
                    


                    j'ai fait ceci, mais ca me renvoie une erreur au niveau de la requête sql, je sais que c'est une erreur évidente mais je ne sais pas la rétablir
                    aidez moi svp
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mai 2009 à 13:25:12

                      Statement stmt2 = conn.createStatement();
                      String id = jTextField1.getText();
                                 stmt2.executeQuery("SELECT * from professeur where id="+id+"");
                                 ResultSet rs = stmt2.getResultSet( );
                      int num = 0;
                                  while (rs.next()) {
                                      jLabel1.setText(rs.getString(2));
                                 }
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 mai 2009 à 13:31:06

                        merci, énormément c'est ce qui me fallait :D
                        merci merci merci
                        • Partager sur Facebook
                        • Partager sur Twitter

                        java et mysql

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown