Boa tarde, amigos.
Criei uma lista em jsp, fiz os imports necessários, copiei o driver do mysql e o jar do projeto utilizado, quando executado, é [color=green]CONSTRUÍDO COM SUCESSO[/color], porém a lista não é exibida.
É um exercício da Caelum (FJ-21). Eis as classes e o jsp utilizados:
lista-scriptlet<%@page import="modelo.Contato"%>
<%@page import="dao.ContatoDAO"%>
<%@page import="java.util.List"%>
<html><ul>
<%
ContatoDAO dao = new ContatoDAO();
List<Contato> contatos = dao.getLista();
for(Contato contato : contatos){
%>
<li><%=contato.getNome()%>,<%=contato.getEmail()%>,<%=contato.getEndereco()%></li>
<%
}
%>
</ul></html>
package modelo;
/**
* Classe com os getters e setters que serão utilizados pela classe ContatoDAO
* @author marcus/+/LaraSoft/+/
*/
public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
ContatoDAO
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import modelo.Contato;
import conexao.ConnectionFactory;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
* Classe capaz de acessar o banco de dados através do Design Patter DAO
* @author marcus/+/LaraSoft/+/
*/
public class ContatoDAO {
private Connection connection;
public ContatoDAO() throws SQLException {
this.connection = ConnectionFactory.getConnection();
}
public List<Contato> getLista() throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("select * from contatos where nome like 'C%'");
ResultSet rs = stmt.executeQuery();
List<Contato> contatos = new ArrayList<Contato>();
while (rs.next()) {
// criando o objeto Contato
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
// adicionando o objeto à lista
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
}
public void adiciona(Contato contato) throws SQLException {
String sql = "insert into contatos(nome,email,endereco)values(?,?,?)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.execute();
stmt.close();
}
public List<Contato> selectById() throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("select * from contatos where id = 1");
ResultSet rs = stmt.executeQuery();
List<Contato> contatos = new ArrayList<Contato>();
while (rs.next()) {
// criando o objeto Contato
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
// adicionando o objeto à lista
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
}
public void altera(Contato contato) throws SQLException {
PreparedStatement stmt = connection.prepareStatement("update contatos set nome=?, email=?, endereco=? where id=1");
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.execute();
stmt.close();
}
public void remove(Contato contato) throws SQLException {
PreparedStatement stmt = connection.prepareStatement("delete from contatos where id=3");
stmt.execute();
stmt.close();
}
}