2010-05-11 154 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[]這會導致它爲空