2014-12-03 72 views
0

我想存儲使用的方法的SQL列到arrayjava存儲一個SQL列到Java數組

我的代碼:

public static String[] getAirports() { 
     String airport[]; 


     try { 
      String sql = "SELECT airportname FROM luggageApp.airport"; 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection connection = DatabaseManager.openConnection(); 
      Statement statement = connection.createStatement(); 
      PreparedStatement pst = connection.prepareStatement(sql); 
      ResultSet rs = pst.executeQuery(); 


      ResultSetMetaData rsmetadata = rs.getMetaData(); 

      int columns = rsmetadata.getColumnCount(); 
      airport[] = new String[columns]; 


      while (rs.next()) { 
       for (int j = 1; j < columns; j++) { 
        airport[j] = rs.getString(j); 
       } 
      } 

      connection.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 

     } 

     return airport; 
    } 

我想要什麼: 在一個for循環我想將所有的機場名稱1乘1添加到數組中,以便稍後可以調用此方法來填充jCombobox。

+0

我不知道該對細胞柱機場擁有量創建一個int變量。所以我可以在for循環中使用它。 – Lobato 2014-12-03 12:33:30

+0

應該首先定義'column'變量,因爲它會導致編譯時錯誤。 – 2014-12-03 12:50:03

回答

3

你可以做下面的事情。取而代之的array

int j=0; 
while (rs.next()) {  
    airport[j] = rs.getString("airportname");// get value in airportname column 
              // and add to array 
    j++; 
} 

最好是使用ArrayList

如:

List<String> airPorts=new ArrayList<>(); 
while (rs.next()) {  
    airPorts.add(rs.getString("airportname"));         
} 
+0

你能解釋一下爲什麼在數組上使用ArrayList更好嗎? – Lobato 2014-12-03 12:48:22

+0

因爲'Array'的容量是固定的。 其中,'ArrayList'可以動態增加和減小大小。 – 2014-12-03 12:53:46

+0

@ Mr.Goose'array'具有固定長度,您需要定義'array'的大小。但是你不需要爲ArrayList的長度打擾,也不需要定義它。 – 2014-12-04 04:04:16