Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入java.util.List; /** *从国家/地区数据库读取并打印国家/地区的数据 *@author TJ */ 公共类CountryMain{ 公共静态void main(字符串[]args){ CountriesDB cdb=新的CountriesDB(); List countries=cdb.getCountries(); 适用于(国家:国家){ System.out.println(“名称:”+country.getName() +“人口:“+country.getPopulation() +“年龄中位数:”+country.getMedianAge() +“ID:+country.getId() +“语言:”+country.getLanguage() ); } } }_Java_Sql - Fatal编程技术网

导入java.util.List; /** *从国家/地区数据库读取并打印国家/地区的数据 *@author TJ */ 公共类CountryMain{ 公共静态void main(字符串[]args){ CountriesDB cdb=新的CountriesDB(); List countries=cdb.getCountries(); 适用于(国家:国家){ System.out.println(“名称:”+country.getName() +“人口:“+country.getPopulation() +“年龄中位数:”+country.getMedianAge() +“ID:+country.getId() +“语言:”+country.getLanguage() ); } } }

导入java.util.List; /** *从国家/地区数据库读取并打印国家/地区的数据 *@author TJ */ 公共类CountryMain{ 公共静态void main(字符串[]args){ CountriesDB cdb=新的CountriesDB(); List countries=cdb.getCountries(); 适用于(国家:国家){ System.out.println(“名称:”+country.getName() +“人口:“+country.getPopulation() +“年龄中位数:”+country.getMedianAge() +“ID:+country.getId() +“语言:”+country.getLanguage() ); } } },java,sql,Java,Sql,首先,行: countries.add(new Country(rs.getString("Language"), rs.getString("Language"))); 在声明或填充之前,请参阅rs。此外,他们似乎试图用两条线(都是一样的)来建设一个国家 第二, countries.add(new Language ()); 是疯狂的,因为国家中有国家对象,所以你不能只添加一个语言对象,然后再添加一个新对象(不是从数据库中) 这几乎就像你没有自己写代

首先,行:

countries.add(new Country(rs.getString("Language"),
                    rs.getString("Language")));
在声明或填充之前,请参阅
rs
。此外,他们似乎试图用两条线(都是一样的)来建设一个国家

第二,

countries.add(new Language ());
是疯狂的,因为国家中有国家对象,所以你不能只添加一个语言对象,然后再添加一个新对象(不是从数据库中)

这几乎就像你没有自己写代码,因此不理解它

我认为你需要的是更接近这一点:

private void readLanguages() {
    try (
        Connection connection = getConnection();
        PreparedStatement stmt = connection.prepareStatement(GET_COUNTRY_LANGS_SQL)
    ) {
        ResultSet rs = null;
        for (Country country : countries); {
            stmt.setInt(1, country.getId());
            rs = stmt.executeQuery();
            while (rs.next()) {
              country.setLanguage(rs.getString("Language")); //assumes 1 per country - others are discarded
            }
            rs.close();
        }
    }
}
不是完美的java—但应该让您知道哪里出了问题

其他说明:

  • 实现这一点的简单方法(假设每个国家有一种语言)是在SELECT中加入表
  • 完成数据库连接后,还应关闭数据库连接
  • 我不确定您的
    try(stuff){statements}
    语法是否正确
  • 如果每个国家都有多种语言,您需要在数据结构/类中支持这些语言
  • 我假设你的国家队有接球手和接球手

注意:问题已经更新,但我认为这仍然是最相关的。

根据设计,一个
国家可以有多个
语言,因此您的模型应该如下所示:

class Country {
    private int id;
    private String name;
    private List<String> language;
    //....
}
国家级{
私有int-id;
私有字符串名称;
私有列表语言;
//....
}
有不同的方法可以构造它,最直接的方法是(在伪代码中):

列出结果国家=。。。。;
countryRows=ExecuteTCountrySQL
countryRows中的每个countryRow{
id=行获取(“id”);
name=row.get(“name”);

List langs=new ARRAYLISTY您在这一行没有得到任何编译错误?
countries.add(new Country(rs.getString(“Language”)、rs.getString(“Language”);
首先写下您想要遵循的步骤以及您实际遵循的是什么?问:“Language”实际上是表“Country”中的(string)列吗如果是这样的话,你的语法应该是有效的。如果列不是“语言”,那么它就不起作用了…;Naman,我会根据我尝试循环的语句来做。你的DB表结构是什么?
    package edu.pcc.cis233j.countries;

import java.util.List;

/**
 * Read from the Country database and print data on the countries
 * @author TJ
 */
public class CountryMain {
    public static void main(String[] args) {
        CountriesDB cdb = new CountriesDB();
        List<Country> countries = cdb.getCountries();

        for (Country country : countries) {
              System.out.println("Name: " + country.getName()
                                   + "  Population: " + country.getPopulation()
                                   + "  Median Age: " + country.getMedianAge()
                                   + "  ID      :   " + country.getId()
                                   + "  Language:   " + country.getLanguage()
                      );
        }
    }
}
countries.add(new Country(rs.getString("Language"),
                    rs.getString("Language")));
countries.add(new Language ());
private void readLanguages() {
    try (
        Connection connection = getConnection();
        PreparedStatement stmt = connection.prepareStatement(GET_COUNTRY_LANGS_SQL)
    ) {
        ResultSet rs = null;
        for (Country country : countries); {
            stmt.setInt(1, country.getId());
            rs = stmt.executeQuery();
            while (rs.next()) {
              country.setLanguage(rs.getString("Language")); //assumes 1 per country - others are discarded
            }
            rs.close();
        }
    }
}
class Country {
    private int id;
    private String name;
    private List<String> language;
    //....
}
List<Country> resultCountries=....;
countryRows = executeGetCountrySql
foreach countryRow in countryRows {
    id = row.get("ID");
    name = row.get("NAME");
    List<String> langs = new ArrayList<();
    langRows = executeGetLanguageByCountryIdSql(id);
    foreach langRow in langRows {
        langs.add(langRow.get("LANGUAGE"));
    }
    resultCountries.add(new Country(id, name, langs));
}