2015-05-10 24 views
0

當我處理每個國家時,如何只添加與該國家相匹配的國家/地區的語言?如何將項目添加到匹配的列表?

private List<String> readCountryLanguages(Statement sqlStatement, List<Country>countries) throws SQLException { 
    List<String> languages = new ArrayList<>(); 
    for (Country country : countries) { 
    ResultSet resultSet = sqlStatement.executeQuery("SELECT language FROM COUNTRY_LANGUAGE"); 
    while (resultSet.next()) { 
     String language = new String(resultSet.getString("Languages")); 

     Country obj = new Country(0, language, 0, 0); 
     obj.getId(); 
     } 
    } 
    return languages; 
} 

回答

0

不確定您的COUNTRY_LANGUAGE表結構,但可以更新sql查詢。

SELECT language FROM COUNTRY_LANGUAGE WHERE country='" + country.getName() + "' 

這裏我假設你在COUNTRY_LANGUAGE表和國家的名稱有一列「國家」可以從Country對象通過調用Country.getName()進行檢索。但是您可以使用實際實現中的確切方法。

0
  1. 迭代時返回變量中的Country ID;你應該有這樣的country.getId();

  2. ResultSet resultSet = sqlStatement.executeQuery("SELECT language FROM COUNTRY_LANGUAGE where id='countryIdVariable'");

  3. 改變你的SQL查詢中parametized /準備好的聲明中這樣就可以防止SQL注入,也可以添加變量更容易,而不必寫單引號內變量的SQL字符串。

0

AS由阿修羅,改變你的SQL查詢的第一menthion返回語言,其中contryId是「東西」

然後在while循環使用添加添加的每個語言語言列表對象()方法如下:

while (resultSet.next()) { 
    String language = resultSet.getString("Languages"); 
    // add to list 
    languages.add(language); 
    } 
}