2 votes

Impossible de sélectionner des données dans la base de données MySQL : java.lang.NullPointerException

J'essaie de sélectionner des données à partir de la base de données en utilisant ce code :

//DATABASE
ResultSet rs;
String polecenie;
Statement st;
String[] subj;

public void polacz() {
    try {
        Class.forName("com.mysql.jdbc.Driver");

        Connection pol=DriverManager.getConnection("jdbc:mysql://localhost:3306/testgenerator", "root", "pospaz");
        st = pol.createStatement();
        lblPolaczonoZBaza.setText("Poczono z baz danych testgenerator");

    } catch (Exception ek) {
        statusMessageLabel.setText("Can't connect to d: "+ek);
    }

    polecenie = "select * from subjects";

    try {
        rs = st.executeQuery(polecenie);
        int i=0;
        while (rs.next()){
            subj[i] = rs.getString("name");
            i++;
        }
        st.close();
    } catch (Exception ek) {
        statusMessageLabel.setText("Can't select data: "+ek);
    }
}

La deuxième capture fait apparaître une exception :

java.lang.NullPointerException

J'ai cherché partout et je ne trouve pas la solution. Je serais reconnaissant pour toute aide.

6voto

Oskar Kjellin Points 8728

Vous n'instanciez jamais subj[] ce qui fait qu'il est nul

5voto

tzaman Points 13190

Vous n'initialisez pas le String[] subj que je peux voir, de sorte que lorsqu'il s'agit de subj[i] = ... il s'étouffe. Vous devez effectuer l'une des opérations suivantes :

  • déterminer le nombre de lignes dans l'ensemble de résultats et initialiser le fichier de résultats. subj = new String[resultcount]
  • utiliser un conteneur à extension automatique (comme un ArrayList ) au lieu du tableau de chaînes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X