Esse é um exercício opcional da apostila fj-21 de desenvolvimento web com java.
O exercício propõe o seguinte:
2) Crie uma classe chamada DAOException que estenda de RuntimeException e utilize-a no seu ContatoDAO.
A classe ContatoDAO que fiz está aqui:
package br.com.caelum.jdbc.modelo.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDAO {
private Connection connection;
public ContatoDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Contato contato) {
String sql = "insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new java.sql.Date(Calendar.getInstance()
.getTimeInMillis()));
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException();
}
}
public List<Contato> getLista() {
try {
List<Contato> contatos = new ArrayList<Contato>();
PreparedStatement stmt = this.connection
.prepareStatement("select * from contatos");
ResultSet rs = stmt.executeQuery();
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"));
// Montando a data através de Calendar
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data);
// Adicionando o objeto a lista
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
Mas, não tenho idéia de como fazer essa classe DAOException. Caso alguém tenha feito, pode me sugerir alguma(s) forma(s) de como implementá-la?
Abraço a todos