Olá, tenho o seguinte exercício para fazer, e minha classe PaisDAO (com os métodos CRUD) está dando erro nos métodos para maior populacao, menor area e vetor de três paises especialmente nas linhas setNome(rs.getString(“nome”)); e setArea(rs.getDouble(“area”));
Segue exercício e código:
Crie uma classe Pais com os atributos id (int), nome (String), populacao (long) e area (double).
- c. Crie um construtor com os campos, um construtor padrão, gets e sets.
- d. Crie os métodos do CRUD de Pais.
- e. Crie um método que retorna o país com maior número de habitantes.
- f. Crie um método que retorna o país com menor área.
- g. Crie um método que retorne um vetor de 3 países.
- h. Crei uma classe ConectionFactory.
- i. Crie uma classe de testes que, além de testar os CRUDs, teste também os métodos maiorPopulacao, menorArea e vetorTresPaises
public String maiorPopulacao() {
String sqlSelect = "SELECT * FROM pais WHERE populacao = (SELECT MAX(populacao) FROM pais)";
try (Connection conn = obtemConexao(); PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
stm.setInt(1, getId());
try (ResultSet rs = stm.executeQuery();) {
if (rs.next()) {
setNome(rs.getString("nome"));
setPopulacao(rs.getLong("populacao"));
} else {
setId(-1);
setNome(null);
setPopulacao(-1);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return sqlSelect;
}
public String menorArea() {
String sqlSelect = "SELECT * FROM pais WHERE area = (SELECT MIN(area) FROM pais)";
try (Connection conn = obtemConexao(); PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
stm.setInt(1, getId());
try (ResultSet rs = stm.executeQuery();) {
if (rs.next()) {
setNome(rs.getString("nome"));
setArea(rs.getDouble("area"));
} else {
setId(-1);
setNome(null);
setArea(-1);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return sqlSelect;
}
public String VetorTresPaises() {
String sqlSelect = "SELECT * FROM pais ORDER BY RAND() Limit 3";
try (Connection conn = obtemConexao(); PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
stm.setInt(1, getId());
try (ResultSet rs = stm.executeQuery();) {
if (rs.next()) {
setNome(rs.getString("nome"));
setPopulacao(rs.getLong("populacao"));
setArea(rs.getDouble("area"));
} else {
setId(-1);
setNome(null);
setPopulacao(-1);
setArea(-1);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException e1) {
System.out.print(e1.getStackTrace());
}
return sqlSelect;
}
}