2015-05-10 2 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.getName(). Но вы можете использовать точный метод из своей реальной реализации.

0
  1. возвращает идентификатор страны в переменной при повторении; у вас должно быть что-то вроде country.getId();

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

  3. изменить ваш запрос будет parametized/подготовленное заявление, так что вы можете предотвратить SQL инъекции, а также добавить переменную проще вместо того, чтобы писать переменную в пределах одной цитаты в вашем SQL строки.

0

AS menthion по Asura, в первую очередь изменить свой SQL запрос, который возвращает язык, где contryId это «нечто»

затем в то время как цикл добавить каждый языку на языки список объектов с помощью добавления() следующим образом:

while (resultSet.next()) { 
    String language = resultSet.getString("Languages"); 
    // add to list 
    languages.add(language); 
    } 
} 
Смежные вопросы