# aide debutant java



## makin_toch (27 Mars 2009)

salut,
je suis entrain de programmer une interface java
avec deux champs (login+password) et bouton OK.
j'ai connecter mon programme avec la base de donnée mysql,
pour lire a partir d'un table le login et password.

Je ne trouve pas comment *comparer* le login et mot de passe entrer
par l'utilisateur (interface) et l'autre enregistrer dans la base mysql.


voici mon code:


```
import java.sql.*;
 import java.io.*;
 import java.util.*;
 import javax.swing.table.*;
 import javax.swing.*;
 import java.awt.*;
public class finale extends javax.swing.JFrame {
    
    /** Creates new form finale */
    public finale() {
        initComponents();
        setTitle("   Esprit - Mini projet JAVA / BD ");
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jPasswordField1 = new javax.swing.JPasswordField();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("login");

        jButton1.setText("ok");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jLabel2.setText("pass");

        jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jPasswordField1ActionPerformed(evt);
            }
        });

        jButton2.setText("exit");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(36, 36, 36)
                        .addComponent(jLabel1)
                        .addGap(27, 27, 27)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(55, 55, 55)
                        .addComponent(jLabel2)
                        .addGap(18, 18, 18)
                        .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(162, 162, 162)
                        .addComponent(jButton1)))
                .addContainerGap(78, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(284, Short.MAX_VALUE)
                .addComponent(jButton2)
                .addGap(65, 65, 65))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(54, 54, 54)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2)
                    .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(32, 32, 32)
                .addComponent(jButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 114, Short.MAX_VALUE)
                .addComponent(jButton2)
                .addGap(34, 34, 34))
        );

        pack();
    }// </editor-fold>

public void connect() {
     /*String login=jTextField1.getText();
     char[] password=jPasswordField1.getPassword();
     System.out.println (login) ;*/
     

        }
    
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    String login=jTextField1.getText();                        
     System.out.println (login) ;                             [B]//affiche le login entrer par l'utilisateur[/B]
     char[] password=jPasswordField1.getPassword();
     System.out.println (password);                    [B]//affiche password entrer par l'utilisateur
[/B]
}

private void jPasswordField1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
}

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
 try {
 Toolkit.getDefaultToolkit().beep();
 int reply = JOptionPane.showConfirmDialog(this,
 "Do you really want to quit?",
 "Esprit-Mini projet JAVA / BD - Quit" ,
 JOptionPane.YES_NO_OPTION,
 JOptionPane.QUESTION_MESSAGE);
 if (reply == JOptionPane.YES_OPTION) {
 System.exit(0);
 }
 } catch (Exception e) {
 }
}
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new finale().setVisible(true);
     
                     //debut connexion mysql
                try {
                   Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                        System.err.println(e) ;
                        System.exit (-1) ;
                }

                try {
                        // Création d'une connexion à la base
                        Connection ma_connection = DriverManager.getConnection(
                                         "jdbc:mysql://localhost/projet",
                                         "root",
                                         null
                                        );

                        // Une requête simple
                        String ma_requete = "select login,pass from utilisateur" ;

                        // Requête en utilisant un Statement
                        Statement mon_statement = ma_connection.createStatement();

                        // On récu
                        ResultSet mon_resultset = mon_statement.executeQuery(ma_requete);

                        // récupération et traitement du résultat
  
                        //  System.out.println ("Dans ma relation :") ;
                        while (mon_resultset.next ()) {
                                System.out.println(     "| " +
                                                        mon_resultset.getString("login")      
                                                        +" | "+
                                                        mon_resultset.getString("pass")
                                                             );
                                                      }
[B]//affiche le login et password dans la base[/B]
                        ma_connection.close();

                } catch (java.sql.SQLException e) {
                        System.err.println(e);
                        System.exit(-1);
                }     //fin connexion mysql
              }
           
        });
    }
    
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPasswordField jPasswordField1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration
    
}
```

et quelques commentaires en gras dans le code

Merci d'avance


----------



## OlivierL (27 Mars 2009)

Salut,

Bon, là, c'est plus un problème de code, c'est un problème de conception. Tu dois "organiser" ton programme en codant plusieurs classes.
Une première qui va contenir tout ton code Awt / Swing.

Une seconde qui exposera une méthode prenant le login et le mdp saisis en paramètre, et qui appelera la suivant pour obtenir le mpd de la base et faire la comparaison avec la méthode equals() de la classe java.lang.String.

Une troisième qui contient tout ton code Sql, qui exposera une méthode prenant le login en paramètre, pour faire ton "select pass from utilisateur where login = 'le_login'.

Good Luck


----------



## Lapin Masqué (27 Mars 2009)

Tu peux aussi passer le mot de passe dans ta requête SQL et regarder si le ResultSet est vide ou non...

Mais à mon avis, avant de chercher à faire marcher une base de données, tu devrais peut-être te pencher un peu plus sur la notion de programmation orientée objet, l'architecture MVC (un programme bien conçu c'est robuste et facile comprendre), et regarder un peu plus loin sur la programmation swing car ton logiciel de création d'interface graphique est pas super super propre.


----------



## F1CHF (19 Octobre 2009)

bjr
j'ai fait répondre, mais ce n'est pas une réponse que je vais taper
c'est une demande d'aide !
je vais être franc, je ne connais Java que de nom, mais "on" m'a dit que c'est via Java
que je devrais trouver une solution a mon besoin !
je m'explique :
je dois passer a une page en HTTPS le parametre USER et Password et faire enter
pourquoi :
en tant que radio amateur , j'essaye d'installer un PC portable en wifi sur FREE WIFI
ce portable est tout seul dans la nature (relais de television) et en cas de coupure
il est évident que je dois me déplacer pour faire ce fameux login !
Pouvez vous aider un petit vieux, qui a bien connle DOS3, mais qui est completement
largué avec ces magnifiques nouveaux languages !
a vous lire
merci
F1CHF@free.fr


----------

