如何将项目添加到匹配的列表中?

时间:2015-05-10 03:19:09

标签: java

在处理每个国家/地区时,如何仅添加该国家/地区ID匹配的语言?

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

3 个答案:

答案 0 :(得分:0)

不确定您的COUNTRY_LANGUAGE的表结构,但您可以将sql查询更新为类似的内容。

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

这里我假设您的COUNTRY_LANGUAGE表中有一个“country”列,并且可以通过调用Country.getName()从Country对象中检索国家/地区名称。但是你可以使用实际实现中的确切方法。

答案 1 :(得分:0)

  1. 在迭代时返回变量中的Country id;你应该有country.getId();

  2. 之类的东西
  3. ResultSet resultSet = sqlStatement.executeQuery("SELECT language FROM COUNTRY_LANGUAGE where id='countryIdVariable'");

  4. 将您的sql查询更改为参数化/预准备语句,这样您就可以防止sql注入并且更容易添加变量,而不必在sql字符串中的单引号内写入变量。

答案 2 :(得分:0)

Asura的AS menthion,首先更改你的sql查询,它返回contryId是什么&#39;

的语言

然后在while循环中使用add()方法将每个语言添加到语言列表对象:

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