Ae amigos, como vão ? Estou com um problema nesse método que faz a materialização do objeto… Ou seja, ele pega as informações no BD e cria o objeto… Eu tenho uma classe que se chama ENTRADA (abstrata) e 3 classes filhas: MANUTENCAO, GARANTIA E REVISAO… O método não funciona ele sempre entra na exception de “Código não encontrado”… Se alguem poder me dar uma dica eu fico muito agradecido… Se tiver, também, como deixar esse código mais enxuto, pode me dar alguma dica ?
[code]public Entrada achaCodigo(int codigo) throws NaoEncontradoException {
String clausula = "select * from oficina where codigo = " + "\'" + codigo + "\'";
String cod;
try {
pstmt = con.prepareStatement(clausula);
rs = pstmt.executeQuery();
if (rs.next()) {
cod = rs.getString("tipo");
if (cod.equals("Manutencao"))
e = new Manutencao(rs.getInt("codigo"), rs
.getString("codigo"), rs.getString("placa"), rs
.getString("telefone"), rs
.getString("descricaoPecas"), rs
.getString("descricaoServicos"), rs
.getString("descricaoProblema"), rs
.getString("dataSaida"), rs
.getString("dataPrevista"), rs
.getString("dataEntrada"), rs
.getString("dataInicio"), rs
.getDouble("valorPecas"), rs
.getDouble("valorServicos"), rs
.getInt("qtdPecas"), rs
.getInt("qtdItens"));
else if (cod.equals("Garantia"))
e = new Garantia(rs.getInt("codigo"), rs
.getString("codigo"), rs.getString("placa"), rs
.getString("telefone"), rs
.getString("descricaoPecas"), rs
.getString("descricaoServicos"), rs
.getString("descricaoProblema"), rs
.getString("dataSaida"), rs
.getString("dataPrevista"), rs
.getString("dataEntrada"), rs
.getString("dataInicio"), rs
.getDouble("valorPecas"), rs
.getDouble("valorServicos"), rs
.getInt("qtdPecas"), rs
.getInt("qtdItens"));
else
e = new Revisao(rs.getInt("codigo"),
rs.getString("codigo"), rs.getString("placa"), rs
.getString("telefone"), rs
.getString("descricaoPecas"), rs
.getString("descricaoServicos"), rs
.getString("descricaoProblema"), rs
.getString("dataSaida"), rs
.getString("dataPrevista"), rs
.getString("dataEntrada"), rs
.getString("dataInicio"), rs
.getDouble("valorPecas"), rs
.getDouble("valorServicos"), rs
.getInt("qtdPecas"), rs
.getInt("qtdItens"));
}
} catch (SQLException err) {
err.getStackTrace();
}
return e;
}[/code]
NaoEncontradoException: Codigo nao encontrado.
at OficinaSQL.achaCodigo(OficinaSQL.java:19)
at InterOficina.<init>(InterOficina.java:32)
at InterOficina.main(InterOficina.java:13)