Alguém pode me ajudar a identificar o que há de errado no meu método??
Basicamente, eu quero retornar os dados do país com a maior população (Já há países inseridos no banco), mas a página JSP está apenas me retornando valores zero “0”;
Método:
public Pais maiorPopulacao(Pais pais) {
Pais p = new Pais();
String sqlSelect = "SELECT nome, populacao, area from Pais WHERE populacao=( SELECT max(populacao) FROM pais)";
try(Connection conn = ConectionFactory.getConnection();
PreparedStatement ps = conn.prepareStatement(sqlSelect);) {
ps.setLong(1, p.getPopulacao());
try(ResultSet rs = ps.executeQuery();) {
if(rs.next()) {
p.setNome(rs.getString("nome"));
p.setPopulacao(rs.getLong("Populacao"));
p.setArea(rs.getDouble("Area"));
}
}catch (SQLException e) {
e.printStackTrace();
}
}catch(SQLException e1) {
System.out.println(e1.getStackTrace());
}
return p;
}
Servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
PaisService ps = new PaisService();
Pais p = new Pais();
ps.maiorPopulacao(p);
request.setAttribute("pais", p);
RequestDispatcher dispatcher = request.getRequestDispatcher("MaiorPop.jsp");
dispatcher.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
no classe service:
public Pais maiorPopulacao(Pais pais) {
return dao.maiorPopulacao(pais);
}
e a página JSP, que deveria imprimir corretamente os dados do país com a maior população:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>PAÍS COM MAIOR POPULAÇÃO </title>
</head>
<body>
<table>
<thead>
<tr>
<td>Nome</td>
<td>Populacao</td>
<td>Area</td>
</tr>
</thead>
<tbody>
<tr>
<td>${pais.nome} </td>
<td>${pais.populacao } </td>
<td>${pais.area}</td>
</tr>
</table>
</body>
</html>