2010-05-11 7 views
2

Я пытаюсь выбрать данные из базы данных, используя этот код:Невозможно выбрать данные из базы данных MySQL: java.lang.NullPointerException

//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); 
    } 
} 

Второй улов показывает исключение:

java.lang.NullPointerException 

Я везде искал, и я не могу найти решение. Я был бы благодарен за любую помощь.

ответ

5

Вы не инициализирует String[] subj массив, что я могу видеть, поэтому, когда он попадает в subj[i] = ... он задыхается. Вы должны выполнить одно из следующих действий:

  • определить количество строк в результирующем и инициализировать subj = new String[resultcount]
  • использовать автоматически увеличивающийся контейнер (вроде ArrayList) вместо массива строк
6

Вы никогда не экземпляр subj[], который заставляет его быть нулевым