2

I'm trying to select data from database using this 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("Połączono 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);
    }
}

The second catch shows exception:

java.lang.NullPointerException

I looked everywhere and I can't find the solution. I'd be grateful for any help.

2 Answers 2

6

You never instantiate subj[] which causes it to be null

Sign up to request clarification or add additional context in comments.

Comments

5

You're not initializing the String[] subj array, that I can see, so when it gets to subj[i] = ... it chokes. You need to do one of the following:

  • determine the number of rows in the resultset, and initialize subj = new String[resultcount]
  • use an auto-extending container (like an ArrayList) instead of the string array

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.