Bonsoir tout le monde aidez moi avec mes codes :toujours problèmes d'exécution

Signaler
-
Messages postés
2
Date d'inscription
dimanche 18 octobre 2020
Statut
Membre
Dernière intervention
20 octobre 2020
-
Bonjour,
package Application;


import java.net.Socket;
import java.sql.*;


public class BDD {
    // Les declarations 
    Connection connection;
        Statement statement;
    String SQL;
    String url;
        String username;
        String password;
        Socket client;
        int port;
        String host;
        //ResultSet resultSet;
        
    public BDD(String url,String username,String password,String host,int port ){
        
           this.url=url;
           this.username=username;
           this.password=password;
           this.host=host;
           this.port=port;      
    }
    //Fonction pour se connecter à la base de données
    public Connection connexionDatabase(){
        try {
      Class.forName("com.mysql.jdbc.Driver");
      System.out.println("Driver O.K.");

      String url = "jdbc:mysql://localhost:3306/gestion_de_stock";
      String user = "root";
      String passwd = "";

      java.sql.Connection connection = DriverManager.getConnection(url, user, passwd);
      System.out.println("Connexion effective !");         
      } catch (Exception e) {
      e.printStackTrace();
  
    } 
          return connection;
         } 
    
    //Fonction pour fermer la base de données
    public Connection closeconnexion(){
        try{
            connection.close();
        
        }catch(Exception e){ System.err.println(e);
        
        }
        return connection;
    
    }
    // Fonction pour l'execution de la requete
    
    public ResultSet  exécutionQuery(String sql){
        connexionDatabase();
        
        ResultSet resultSet = null;
         
        
        try{
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sql);
            System.out.println(sql);
            
        }catch(SQLException ex){
            
                System.err.println(ex);
                
                }
        
                return resultSet;
        
        }
        //Fonction pour l'execution de la requete Update
    
    public String exécutionUpdate(String sql){
         connexionDatabase();
         String result = "";
        try{
            statement = connection.createStatement();
            statement.executeUpdate(sql);
            result = sql;
            
        }catch(SQLException ex){
            result = ex.toString();
                
                }
        
                return result;
    }
    // Fonction pour afficher tous les champs de la table
    
    public ResultSet querySelectorAll(String nomTable){
        connexionDatabase();
        SQL ="SELECT * FROM " + nomTable ;
        System.out.println(SQL);
        return this.exécutionQuery(SQL);
    
    } 
    
    //Fonction pour tous  afficher avec Paramettre (etat)
    
    public ResultSet querySelectorAll(String nomTable, String etat){
        connexionDatabase();
        SQL ="SELECT * FROM " + nomTable + "WHERE" + etat ;
        
        return this.exécutionQuery(SQL);
        
        }
    //    
    public ResultSet querySelect(String[] nomColonne,String nomTable){   
    connexionDatabase();
        int i;
        SQL = "SELECT";
        for(i = 0; i <= nomColonne.length-1; i++){
        SQL += nomColonne[i];
        if (i < nomColonne.length-1){
        SQL +=",";
        }
        }
        SQL += "FROM" + nomTable;
        return this.exécutionQuery(SQL);
    
    }
    
    //
    public ResultSet FcSelectCommand(String[] nomColonne, String nomTable, String etat){
            connexionDatabase() ;
        int i;
        SQL = "SELECT";
        for(i = 0; i <= nomColonne.length-1 ; i++){
        SQL += nomColonne[i];
        if (i < nomColonne.length-1){
        SQL +=",";
        }
        }
        SQL += "FROM" + nomTable + "WHERE" + etat;
        return this.exécutionQuery(SQL);
    
    
    
    } 
    
    //Fonction d'insertion de données
    
    public String queryInsert(String nomTable, String[] contenuTableau){
        
        connexionDatabase();
        int i;
        SQL = "INSERT INTO" + nomTable + "VALUES (";
        for(i = 0; i <= contenuTableau.length-1 ; i++){
        SQL += "'" + contenuTableau[i] + "'";
        if (i < contenuTableau.length-1){
        SQL +=",";
        }
        }
        SQL += ")";
        return this.exécutionUpdate(SQL);
    

        
    }
    //
    public String queryInsert(String nomTable, String[] nomColonne, String[] contenuTableau){
        
        connexionDatabase();
        int i;
        SQL = "INSERT INTO" + nomTable + "(";
        for(i = 0; i <= contenuTableau.length-1 ; i++){
        SQL += contenuTableau[i];
        if (i < contenuTableau.length-1){
        SQL +=",";
        }
        }
        SQL +=") VALUES(";
        
        for(i = 0; i <= contenuTableau.length-1 ; i++){
        SQL += "'" + contenuTableau[i] + "'";
        if (i < contenuTableau.length-1){
        SQL +=",";
        }
        }
         SQL += ")";
        return this.exécutionUpdate(SQL);
    
    }
    
    //
    public String queryUpdate(String nomTable, String[] nomColonne, String[] contenuTableau, String etat){
        
        connexionDatabase();
       int i;
        SQL = "UPDATE" + nomTable + "SET";
        for(i = 0; i <= nomColonne.length-1 ; i++){
        SQL += nomColonne[i] +"='" +contenuTableau[i] +"='";
        if (i < nomColonne.length-1){
        SQL +=",";
        }
        }
   
         SQL += "WHERE" + etat;
        return this.exécutionUpdate(SQL);
    
    } 
    //Fonction de la requete Supprimer sans Parametre 
     
    public String queryDelete(String nomTable){
        
        connexionDatabase();
     SQL = "DELETE FROM" + nomTable;
        return this.exécutionUpdate(SQL);
    }
    
    //Fonction de la requete Supprimer avec Parametre
    
    public String queryDelete(String nomTable, String etat){
        
        connexionDatabase();
     SQL = "DELETE FROM" + nomTable +"WHERE" + etat;
       
        return this.exécutionUpdate(SQL);
    }

}



Les erreurs :
run:
Driver O.K.
Connexion effective !
Driver O.K.
Connexion effective !
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
 at Application.BDD2.exécutionQuery(BDD2.java:71)
 at Application.BDD2.querySelectorAll(BDD2.java:118)
 at base_de_donnees.Login.jButton1ActionPerformed(Login.java:109)
 at base_de_donnees.Login.access$200(Login.java:17)
 at base_de_donnees.Login$3.actionPerformed(Login.java:81)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
 at java.awt.Component.processMouseEvent(Component.java:6533)
 at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
 at java.awt.Component.processEvent(Component.java:6298)
 at java.awt.Container.processEvent(Container.java:2236)
 at java.awt.Component.dispatchEventImpl(Component.java:4889)
 at java.awt.Container.dispatchEventImpl(Container.java:2294)
 at java.awt.Component.dispatchEvent(Component.java:4711)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
 at java.awt.Container.dispatchEventImpl(Container.java:2280)
 at java.awt.Window.dispatchEventImpl(Window.java:2746)
 at java.awt.Component.dispatchEvent(Component.java:4711)
 at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
 at java.awt.EventQueue.access$500(EventQueue.java:97)
 at java.awt.EventQueue$3.run(EventQueue.java:709)
 at java.awt.EventQueue$3.run(EventQueue.java:703)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
 at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
 at java.awt.EventQueue$4.run(EventQueue.java:731)
 at java.awt.EventQueue$4.run(EventQueue.java:729)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

3 réponses

Messages postés
16120
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2020
103
Bonjour,

Dans ton constructeur tu fais :
java.sql.Connection connection = DriverManager.getConnection(url, user, passwd); 

Cela signifie que tu créés une variable locale connection, cela n'initialise pas l'attribut
Connection connection;
qui est au début de tes déclarations, donc sa valeur vaut toujours null lorsque tu fais
statement = connection.createStatement();
d'où l'erreur NullPointerException.
Merci beaucoup pour votre remarques
Comment corriger cela?
merci d'avance.
Messages postés
16120
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2020
103
Écris juste
connection = DriverManager.getConnection(url, user, passwd);
sans redéclarer le type, il affectera alors la connexion à l'attribut, comme attendu.
Merci beaucoup pour vos réponses, je suis un débutant donc veuillez me comprendre.
je fait cela et maintenant c'est ce qui sort :
run:
Driver O.K.
Connexion effective !
Driver O.K.
Connexion effective !
SELECT * FROM  utilisateur WHERE username = ' d ' and password = ' d ' 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
 at base_de_donnees.Login.jButton1ActionPerformed(Login.java:131)
 at base_de_donnees.Login.access$200(Login.java:17)
 at base_de_donnees.Login$3.actionPerformed(Login.java:81)

//////////////////
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
                      
     rs = db.querySelectorAll(" utilisateur ", " username = ' " 
                                + txt_username.getText()
                                + " ' and password = ' "
                                +txt_password.getText() + " ' ") ; 
     
        
        try{
             while (rs.next()){
                    username1 = rs.getString("username");
                    password1 = rs.getString("password");
                          hak = rs.getString("type"); 
            }
        
        
        }catch(SQLException ex){
            
        Logger.getLogger(Login.class.getName()).log(Level.SEVERE,null,ex);
        }
             if(username1 == "" && password1 == ""){
              JOptionPane.showMessageDialog(this, "le nom utilisateur ou le mot de passe est incorrect");
                
             } else {
                     if(hak.equals("directeur")){
                     Principale h = new Principale();
                     h.setVisible(true);
                     this.dispose();
                     
                     
                    }else{
                    Caissier k = new Caissier();
                    k.setVisible(true);
                    //this.dispose();
         }
     
     
     } 
       
       
    }
Messages postés
16120
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2020
103
La trace de l'exception dit exactement où est le problème, c'est ligne 131, mais n'ayant pas le code exact je ne peux pas deviner à quelle instruction cela correspond, mais en général un NullPointerException se produit lorsque l'on fait quelque chose comme
x.y
alors que x vaut null, dans ce cas là correction consiste à donner une valeur à x.
Messages postés
2
Date d'inscription
dimanche 18 octobre 2020
Statut
Membre
Dernière intervention
20 octobre 2020
>
Messages postés
16120
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2020

D'accord une fois de plus 1000 merci . je vais essayer ça ,si vous voulez je vous envoie le programme en entier , vous permettant de voir clairement et on corrige ensemble mes erreurs de débutant