Utilisation swing

Bonjour,
je fait test connexion avec base de donne et ca marche avec sucée
maintenant je veux faire l'ajout en mode graphique

je veux faire une bonne stratégie de développement.

1-créer une class etudiant (contient cin,nom,prenom)
2-créer interface ADDetudiant
2-créer une class connexion

après un simple recherche sur internet j'entends de ce terme "PreparedStatement"

voila le code de bouton 'valider'

qui sert a enregistrer le donnes saisies dans la base de donné

private void jButtonValiderActionPerformed(java.awt.event.ActionEvent evt) {                                               

         Etudiant e = new Etudiant();
         e.setCin(Integer.parseInt(jTextFieldCIN.getText()));
         e.setNom(jTextFieldNom.getText());
         e.setPrenom(jTextFieldPrenom.getText());

    // ici je dois instancier la class connexion pour ouvrir connection

   // faire String sql = "INSERT INTO etudiant (cin, nom, prenom) 
//VALUES (?, ?, ?)";
//PreparedStatement statement = connection.prepareStatement(sql);

//statement.set.....................


//fermer connexion 






et pour la classe connexion que dois ouvrir connexion

je suppose que dois être comme suit;


public class connexion
{
    public static void main(String[] args) {
      



        Connection connexion;
          Statement statement;
          ResultSet resultat;
try {
    Class.forName("com.mysql.jdbc.Driver");
    connexion = DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
    statement = connexion.createStatement();


 }catch(Exception e){
               System.out.print("Impossible de se connecté à MySQL");
          }

}


pouvez m'aider a compléter ce code (dans le bouton "valider"

merci d'avance

2 réponses

  1. j'essaye avec ce code :

    class interfaceEtudiant :

    public class interfaceEtudiant extends javax.swing.JFrame { 
    
    .... 
    
    .... 
    .... 
    .. 
    
     private void jButtonValiderActionPerformed(java.awt.event.ActionEvent evt) { 
    
               Integer cin=Integer.parseInt(jTextFieldCIN.getText()); 
            String nom=jTextFieldNom.getText(); 
            String prenom=jTextFieldPrenom.getText(); 
            String classe=jTextFieldClasse.getText(); 
            String tel=jTextFieldTel.getText(); 
            String email=jTextFieldEmail.getText(); 
    
          connection c=new connection(); 
    
            
            try { 
                 String sql = "INSERT INTO etudiant (CIN, nom, prenom,classe,tel,email) VALUES(?,?,?.?,?,?)"; 
                connection.connection.createStatement(); 
                PreparedStatement statement = connection.connection.prepareStatement(sql); 
                statement.setObject(1,new Integer(123),Types.INTEGER); 
                statement.setObject(2,nom,Types.VARCHAR); 
                statement.setObject(3,prenom,Types.VARCHAR); 
                statement.setObject(4,classe,Types.VARCHAR); 
                statement.setObject(5,tel,Types.VARCHAR); 
                statement.setObject(6,email,Types.VARCHAR); 
               statement.executeUpdate(); 
    
              
            } catch (SQLException ex) { 
                Logger.getLogger(interfaceEtudiant.class.getName()).log(Level.SEVERE, null, ex); 
            } 
        } 
    
       
        public static void main(String args[]) { 
            java.awt.EventQueue.invokeLater(new Runnable() { 
                public void run() { 
                    new interfaceEtudiant().setVisible(true); 
                } 
            }); 
        } 
    
    
    .... 
    
    ..... 
    
    ... 
    
    


    class connection

    
    public class connection { 
    
          //Connection connexion; 
              //Statement statement; 
             // static ResultSet resultat; 
    
    
       static  String driver = "com.mysql.jdbc.Driver"; 
        static String url = "jdbc:mysql://localhost/test"; 
        static String login = "root"; 
       static String password = ""; 
       static Connection connection = null; 
       static Statement statement; 
            public static void main(String[] args) { 
    
    
    try{ 
       Class.forName(driver); 
       connection = DriverManager.getConnection(url,login,password); 
        statement = connection.createStatement(); 
         
    
       //travail avec les données 
    } 
    catch(ClassNotFoundException cnfe){ 
       System.out.println("Driver introuvable : "); 
       cnfe.printStackTrace(); 
    } 
    catch(SQLException sqle){ 
       System.out.println("Erreur SQL : "); 
       //Cf. Comment gérer les erreurs ? 
    } 
    catch(Exception e){ 
       System.out.println("Autre erreur : "); 
       e.printStackTrace(); 
    } 
    finally 
    { 
       if(connection!=null) 
       {try{connection.close();} 
        catch(Exception e){e.printStackTrace();}} 
       //etc. 
    } 
    
    } 
    } 
    


    mais elle n'ajoute pas a la base de donne

    voila l'erreur

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
            at Pack2.interfaceEtudiant.jButtonValiderActionPerformed(interfaceEtudiant.java:196) 
            at Pack2.interfaceEtudiant.access$200(interfaceEtudiant.java:21) 
            at Pack2.interfaceEtudiant$3.actionPerformed(interfaceEtudiant.java:86) 
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) 
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) 
            at java.awt.Component.processMouseEvent(Component.java:6263) 
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) 
            at java.awt.Component.processEvent(Component.java:6028) 
            at java.awt.Container.processEvent(Container.java:2041) 
            at java.awt.Component.dispatchEventImpl(Component.java:4630) 
            at java.awt.Container.dispatchEventImpl(Container.java:2099) 
            at java.awt.Component.dispatchEvent(Component.java:4460) 
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) 
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) 
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) 
            at java.awt.Container.dispatchEventImpl(Container.java:2085) 
            at java.awt.Window.dispatchEventImpl(Window.java:2478) 
            at java.awt.Component.dispatchEvent(Component.java:4460) 
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    0