Jsf sem retorno de erro ao executar remoção no banco

5 respostas
dcorteztec

Bom tarde amigos,
é o seguinte estou tentando remover alguns contatos no banco usando jdbc e jsf eu consigo inserir e buscar mais não remover quando executo não me retorna nenhum tipo erro.
código da bean de remoção

public String remove() throws SQLException {

String result_remocao = REMOCAO_INVALIDA;

try {

stm = con.createStatement();

stm.executeUpdate(“DELETE FROM funcionarios WHERE id=’” + id + “’”);

result_remocao = BUSCA_VALIDA;
stm.close();
	} catch (SQLException e) {
		System.err.println("Erro: " + e);
		result_remocao = BUSCA_INVALIDA;
	}

	return result_remocao;
}

e da jsp.

<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://richfaces.org/a4j” prefix=“a4j”%>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“rich”%>

Resultado da Busca


Id:
Nome:
Usuário:
Email:

voltar

5 Respostas

thiago.correa

Antes de mais nada, arrume esse seu método, ele está engolindo a exceção

public String remove() { 
String result_remocao = REMOCAO_INVALIDA; 
try { 
stm = con.createStatement(); 
stm.executeUpdate("DELETE FROM funcionarios WHERE id='" + id + "'"); 
result_remocao = BUSCA_VALIDA; 

stm.close(); 
} catch (Exception e) { 
e.printStackTrace();
result_remocao = BUSCA_INVALIDA; 
} 

return result_remocao; 
}

Tenta de novo e posta aqui o que saiu nos logs!

cesar.aso

Nessa parte do JavaWHERE id='" + id + "'"); tem certeza que está passando o parâmetro id?

thiago.correa

Ah, tá explicado o porquê que ele não exclui.
Você está passando o Id como parâmetro do link mas não o está recuperando no teu mbean

String idBanco = ((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getExternalContext().getRequest()).getParameter("idBanco");

stm.executeUpdate("DELETE FROM funcionarios WHERE id='" + idBanco + "'");

Outra coisa, dê uma lida em MVC, não é uma boa prática fazer a conexão com o banco no controler da tua áplicação :wink:

dcorteztec

o correto seria assim

<h:commandButton action="#{loginDAO.remove}" value="apagar" onclick="javascript:if (!confirm('Deseja excluir este registro?')) return false;" > <f:param id="id" value="#{loginDAO.id}"/> </h:commandButton> </table> </rich:panel> </h:form>

dcorteztec
alterei a bean para imprimir o resultado esta retornando null
public String remove() {   
		    String result_remocao = REMOCAO_INVALIDA;   
		    try {   
		    stm = con.createStatement();   
		    stm.executeUpdate("DELETE FROM funcionarios where id='" + id + "'");   
		    System.out.println("id="+ id);
		    result_remocao = BUSCA_VALIDA;   	      
		    stm.close();   
		    } catch (Exception e) {   
		   e.printStackTrace();  
		   result_remocao = BUSCA_INVALIDA;   
		   }   
		     
		   return result_remocao;   
		   }
Criado 25 de junho de 2009
Ultima resposta 26 de jun. de 2009
Respostas 5
Participantes 3