在处理每个国家/地区时,如何仅添加该国家/地区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;
}
答案 0 :(得分:0)
不确定您的COUNTRY_LANGUAGE的表结构,但您可以将sql查询更新为类似的内容。
SELECT language FROM COUNTRY_LANGUAGE WHERE country='" + country.getName() + "'
这里我假设您的COUNTRY_LANGUAGE表中有一个“country”列,并且可以通过调用Country.getName()
从Country对象中检索国家/地区名称。但是你可以使用实际实现中的确切方法。
答案 1 :(得分:0)
在迭代时返回变量中的Country id;你应该有country.getId()
;
ResultSet resultSet = sqlStatement.executeQuery("SELECT language FROM COUNTRY_LANGUAGE where id='countryIdVariable'");
将您的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);
}
}