2010-05-11 150 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[]这会导致它为空