Bom dia, fiz uma classe de negócio que faz as inserções, pesquisas e exclusões em uma base de dados, as tabelas são mapeadas todas para objetos JavaBeans. Quando faço a inserção tudo bem, mas quando precisei fazer uma pesquisa para autenticação, retornando o objeto usuário, de tiuti. A princípio acho que entrei em um loop infinito pois a aplicação não retorna nada, e quando fui debugá-la apareceu o erro:
:!: Vou colocar o código aqui. Todas as críticas são bem aceitas.
public class EntitiesFacade {
public void inseriAvalicao(AvaliacaoBean avaliacao){
try{
Connection con = ConectaFB.getConexao();
PreparedStatement psmt = con.prepareStatement(
"INSERT INTO AVALIACAO (ID, DATA, NQUESTOES, PONTUACAO, SELECAO, CANDIDATO) VALUES (?,?,?,?,?,?)");
psmt.setInt(1, avaliacao.getId());
psmt.setDate(2, new Date(avaliacao.getData().getTime()));
psmt.setInt(3, avaliacao.getNQuestoes());
psmt.setDouble(4, avaliacao.getPontuacao());
psmt.setInt(5, avaliacao.getSelecao().getId());
psmt.setInt(6, avaliacao.getCandidato().getId());
psmt.executeUpdate();
psmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao incluir avaliacao!");
}
}
public AvaliacaoBean selecionaAvaliacao(int id){
AvaliacaoBean avaliacao = new AvaliacaoBean();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery("SELECT ID, DATA, NQUESTOES, PONTUACAO, SELECAO, CANDIDATO FROM AVALIACAO WHERE ID = " + id);
while(rs.next()){
avaliacao.setId(rs.getInt("ID"));
avaliacao.setData(rs.getDate("DATA"));
avaliacao.setNQuestoes(rs.getInt("NQUESTOES"));
avaliacao.setPontuacao(rs.getDouble("PONTUACAO"));
avaliacao.setSelecao(selecionaSelecao(rs.getInt("SELECAO")));
avaliacao.setQuestoes(listaQuestoes(rs.getInt("ID")));
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao selecionar avaliacao!");
}
return avaliacao;
}
public Collection listaAvaliacoes(String origem, int id){
ResultSet rs;
int pos = 0;
List lista = new Vector();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
if(origem.equals(null)){
rs = smt.executeQuery(
"SELECT ID, DATA, NQUESTOES, PONTUACAO, SELECAO, CANDIDATO FROM AVALIACAO ORDER BY DATA");
} else if (origem.equals("SELECAO")){
rs = smt.executeQuery(
"SELECT ID, DATA, NQUESTOES, PONTUACAO, SELECAO, CANDIDATO FROM AVALIACAO WHERE SELECAO = " + id + " ORDER BY DATA");
} else if (origem.equals("CANDIDATO")){
rs = smt.executeQuery(
"SELECT ID, DATA, NQUESTOES, PONTUACAO, SELECAO, CANDIDATO FROM AVALIACAO WHERE CANDIDATO = " + id + " ORDER BY DATA");
} else {
rs = smt.executeQuery(
"SELECT ID, DATA, NQUESTOES, PONTUACAO, SELECAO FROM AVALIACAO ORDER BY DATA");
}
while(rs.next()){
AvaliacaoBean avaliacao = new AvaliacaoBean();
avaliacao.setId(rs.getInt("ID"));
avaliacao.setData(rs.getDate("DATA"));
avaliacao.setNQuestoes(rs.getInt("NQUESTOES"));
avaliacao.setPontuacao(rs.getDouble("PONTUACAO"));
avaliacao.setSelecao(selecionaSelecao(rs.getInt("SELECAO")));
avaliacao.setQuestoes(listaQuestoes(rs.getInt("ID")));
lista.set(pos, avaliacao);
pos++;
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao listar avaliacoes!");
}
return lista;
}
public void inseriAvaliador(AvaliadorBean avaliador){
try{
Connection con = ConectaFB.getConexao();
PreparedStatement psmt = con.prepareStatement(
"INSERT INTO AVALIADOR (ID, NOME, APELIDO, SENHA, EMAIL ) VALUES (?,?,?,?,?)");
psmt.setInt(1, avaliador.getId());
psmt.setString(2, avaliador.getNome());
psmt.setString(3, avaliador.getApelido());
psmt.setString(4, avaliador.getSenha());
psmt.setString(5, avaliador.getEmail());
psmt.executeUpdate();
psmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao incluir avaliador!");
}
}
public AvaliadorBean selecionaAvaliador(int id){
AvaliadorBean avaliador = new AvaliadorBean();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(
"SELECT ID, NOME, APELIDO, SENHA, EMAIL FROM AVALIADOR WHERE ID = " + id);
while(rs.next()){
avaliador.setId(rs.getInt("ID"));
avaliador.setNome(rs.getString("NOME"));
avaliador.setApelido("APELIDO");
avaliador.setSenha(rs.getString("SENHA"));
avaliador.setEmail(rs.getString("EMAIL"));
avaliador.setSelecoes(listaSelecoes(rs.getInt("ID")));
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao selecionar avaliador!");
}
return avaliador;
}
public Collection listaAvaliadores(int id){
int pos = 0;
List lista = new Vector();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery("SELECT ID, NOME, APELIDO, SENHA, EMAIL FROM AVALIADOR ORDER BY NOME");
while(rs.next()){
AvaliadorBean avaliador = new AvaliadorBean();
avaliador.setId(rs.getInt("ID"));
avaliador.setNome(rs.getString("NOME"));
avaliador.setApelido("APELIDO");
avaliador.setSenha(rs.getString("SENHA"));
avaliador.setEmail(rs.getString("EMAIL"));
avaliador.setSelecoes(listaSelecoes(rs.getInt("ID")));
lista.set(pos , avaliador);
pos++;
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao listar avaliadores!");
}
return lista;
}
public void inseriBoletim(BoletimBean boletim){
try{
Connection con = ConectaFB.getConexao();
PreparedStatement psmt = con.prepareStatement(
"INSERT INTO BOLETIM (ID, NOTA, CANDIDATO, AVALIACAO) VALUES (?,?,?,?)");
psmt.setInt(1, boletim.getId());
psmt.setDouble(2, boletim.getNota());
psmt.setInt(3, boletim.getCandidato().getId());
psmt.setInt(4, boletim.getAvaliacao().getId());
psmt.executeUpdate();
psmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao incluir boletim!");
}
}
public BoletimBean selecionaBoletim(int id){
BoletimBean boletim = new BoletimBean();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(
"SELECT NSERT INTO BOLETIM (ID, NOTA, CANDIDATO, AVALIACAO FROM BOLETIM WHERE ID = " + id);
while(rs.next()){
boletim.setId(rs.getInt("ID"));
boletim.setNota(rs.getDouble("NOTA"));
boletim.setCandidato(selecionaCandidato(rs.getInt("CANDIDATO")));
boletim.setAvaliacao(selecionaAvaliacao(rs.getInt("AVALIACAO")));
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao selecionar boletim!");
}
return boletim;
}
public Collection listaBoletins(){
int pos = 0;
List lista = new Vector();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery("SELECT ID, NOTA, CANDIDATO, AVALIACAO FROM BOLETIM ORDER BY CANDIDATO");
while(rs.next()){
BoletimBean boletim = new BoletimBean();
boletim.setId(rs.getInt("ID"));
boletim.setNota(rs.getDouble("NOTA"));
boletim.setCandidato(selecionaCandidato(rs.getInt("CANDIDATO")));
boletim.setAvaliacao(selecionaAvaliacao(rs.getInt("AVALIACAO")));
lista.set(pos, boletim);
pos++;
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao listar boletins!");
}
return lista;
}
public void inseriCandidato(CandidatoBean candidato){
try{
Connection con = ConectaFB.getConexao();
PreparedStatement psmt = con.prepareStatement(
"INSERT INTO CANDIDATO (ID, NOME, APELIDO, SENHA, EMAIL ) VALUES (?,?,?,?,?)");
psmt.setInt(1, candidato.getId());
psmt.setString(2, candidato.getNome());
psmt.setString(3, candidato.getApelido());
psmt.setString(4, candidato.getSenha());
psmt.setString(5, candidato.getEmail());
psmt.executeUpdate();
psmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao incluir Candidato!");
}
}
public CandidatoBean selecionaCandidato(int id){
CandidatoBean candidato = new CandidatoBean();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(
"SELECT ID, NOME, APELIDO, SENHA, EMAIL FROM CANDIDATO WHERE ID = " + id);
while(rs.next()){
candidato.setId(rs.getInt("ID"));
candidato.setNome(rs.getString("NOME"));
candidato.setApelido("APELIDO");
candidato.setSenha(rs.getString("SENHA"));
candidato.setEmail(rs.getString("EMAIL"));
candidato.setAvaliacoes(listaAvaliacoes("CANDIDATO",rs.getInt("ID")));
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao selecionar candidato!");
}
return candidato;
}
public Collection listaCandidatos(){
int pos = 0;
List lista = new Vector();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(
"SELECT ID, NOME, APELIDO, SENHA, EMAIL FROM CANDIDATO ORDER BY NOME");
while(rs.next()){
CandidatoBean candidato = new CandidatoBean();
candidato.setId(rs.getInt("ID"));
candidato.setNome(rs.getString("NOME"));
candidato.setApelido("APELIDO");
candidato.setSenha(rs.getString("SENHA"));
candidato.setEmail(rs.getString("EMAIL"));
candidato.setAvaliacoes(listaAvaliacoes("CANDIDATO", rs.getInt("ID")));
lista.set(pos, candidato);
pos++;
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao listar candidatos!");
}
return lista;
}
public void inseriQuestao(QuestaoBean questao){
try{
Connection con = ConectaFB.getConexao();
PreparedStatement psmt = con.prepareStatement(
"INSERT INTO QUESTAO (ID, PERGUNTA, RESPOSTA, ALTERNATIVA_1, ALTERNATIVA_2, ALTERNATIVA_3, AVALIACAO) VALUES (?,?,?,?,?,?,?)");
psmt.setInt(1, questao.getId());
psmt.setString(2, questao.getPergunta());
psmt.setString(3, questao.getResposta());
psmt.setString(4, questao.getAlternativa_1());
psmt.setString(5, questao.getAlternativa_2());
psmt.setString(6, questao.getAlternativa_3());
psmt.setInt(7, questao.getAvalicao().getId());
psmt.executeUpdate();
psmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao incluir questao!");
}
}
public QuestaoBean selecionaQuestao(int id){
QuestaoBean questao = new QuestaoBean();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(
"SELECT ID, PERGUNTA, RESPOSTA, ALTERNATIVA_1, ALTERNATIVA_2, ALTERNATIVA_3, AVALIACAO FROM QUESTAO WHERE ID = " + id);
while(rs.next()){
questao.setId(rs.getInt("ID"));
questao.setPergunta(rs.getString("PERGUNTA"));
questao.setResposta(rs.getString("RESPOSTA"));
questao.setAlternativa_1(rs.getString("ALTERNATIVA_1"));
questao.setAlternativa_2(rs.getString("ALTERNATIVA_2"));
questao.setAlternativa_3(rs.getString("ALTERNATIVA_3"));
questao.setAvaliacao(selecionaAvaliacao(rs.getInt("AVALIACAO")));
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao selecionar questao!");
}
return questao;
}
public Collection listaQuestoes(int id){
int pos = 0;
ResultSet rs;
List lista = new Vector();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
if(id == 0){
rs = smt.executeQuery(
"SELECT ID, PERGUNTA, RESPOSTA, ALTERNATIVA_1, ALTERNATIVA_2, ALTERNATIVA_3, AVALIACAO FROM QUESTAO ORDER BY PERGUNTA");
} else {
rs = smt.executeQuery(
"SELECT ID, PERGUNTA, RESPOSTA, ALTERNATIVA_1, ALTERNATIVA_2, ALTERNATIVA_3, AVALIACAO FROM QUESTAO WHERE AVALIACAO = " + id + " ORDER BY PERGUNTA");
}
while(rs.next()){
QuestaoBean questao = new QuestaoBean();
questao.setId(rs.getInt("ID"));
questao.setPergunta(rs.getString("PERGUNTA"));
questao.setResposta(rs.getString("RESPOSTA"));
questao.setAlternativa_1(rs.getString("ALTERNATIVA_1"));
questao.setAlternativa_2(rs.getString("ALTERNATIVA_2"));
questao.setAlternativa_3(rs.getString("ALTERNATIVA_3"));
questao.setAvaliacao(selecionaAvaliacao(rs.getInt("AVALIACAO")));
lista.set(pos, questao);
pos++;
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao listar questoes!");
}
return lista;
}
public void inseriSelecao(SelecaoBean selecao){
try{
Connection con = ConectaFB.getConexao();
PreparedStatement psmt = con.prepareStatement(
"INSERT INTO SELECAO (ID, NOME, ASSUNTO, DATA_INICIO, DATA_TERMINO, AVALIADOR ) VALUES (?,?,?,?,?,?)");
psmt.setInt(1, selecao.getId());
psmt.setString(2, selecao.getNomeSelecao());
psmt.setString(3, selecao.getAssunto());
psmt.setDate(4, new Date(selecao.getDataInicio().getTime()));
psmt.setDate(5, new Date(selecao.getDataTermino().getTime()));
psmt.setInt(6, selecao.getAvaliador().getId());
psmt.executeUpdate();
psmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao incluir selecao!");
}
}
public SelecaoBean selecionaSelecao(int id){
SelecaoBean selecao = new SelecaoBean();
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(
"SELECT ID, NOME, ASSUNTO, DATA_INICIO, DATA_TERMINO, AVALIADOR FROM SELECAO WHERE ID = " + id);
while(rs.next()){
selecao.setId(rs.getInt("ID"));
selecao.setNomeSelecao(rs.getString("NOME"));
selecao.setAssunto(rs.getString("ASSUNTO"));
selecao.setDataIncio(rs.getDate("DATA_INICIO"));
selecao.setDataTermino(rs.getDate("DATA_TERMINO"));
selecao.setAvaliador(selecionaAvaliador(rs.getInt("AVALIADOR")));
selecao.setAvaliacoes(listaAvaliacoes("SELECAO",rs.getInt("ID")));
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao selecionar selecao!");
}
return selecao;
}
public Collection listaSelecoes(int id){
int pos = 0;
List lista = new Vector();
ResultSet rs;
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
if(id == 0){
rs = smt.executeQuery(
"SELECT ID, NOME, ASSUNTO, DATA_INICIO, DATA_TERMINO, AVALIADOR FROM SELECAO ORDER BY ASSUNTO");
} else {
rs = smt.executeQuery(
"SELECT ID, NOME, ASSUNTO, DATA_INICIO, DATA_TERMINO, AVALIADOR FROM SELECAO WHERE AVALIADOR = " + id + "ORDER BY DATA_TERMINO");
}
while(rs.next()){
SelecaoBean selecao = new SelecaoBean();
selecao.setId(rs.getInt("ID"));
selecao.setNomeSelecao(rs.getString("NOME"));
selecao.setAssunto(rs.getString("ASSUNTO"));
selecao.setDataIncio(rs.getDate("DATA_INICIO"));
selecao.setDataTermino(rs.getDate("DATA_TERMINO"));
selecao.setAvaliador(selecionaAvaliador(rs.getInt("AVALIADOR")));
selecao.setAvaliacoes(listaAvaliacoes("SELECAO", rs.getInt("ID")));
lista.set(pos, selecao);
pos++;
}
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao listar selecoes!");
}
return lista;
}
public void apagaRegistro(String tabela, int id){
try{
Connection con = ConectaFB.getConexao();
Statement smt = con.createStatement();
smt.executeUpdate("DELETE FROM " + tabela + " WHERE SINTAXE = " + id);
smt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("Falha ao apagar o registro nº " + id + " da tabela " + tabela);
}
}
}
Preciso muito desta ajuda, para terminar este projeto este ano. Falou galera.
Francisco