1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Alguém me ajuda a fazer o ServLet salvar no banco?

Bem, tô com um problema aqui. Eu coloquei um botão salvar que serve tanto pra salvar um novo registro, como pra salvar alguma alteração, logo o botão vale pra fazer um INSERT e um UPDATE. Eis que surge o problema, o servlet roda direitinho, mas quando vou olhar no banco, não tem nada gravado. Alguém me dá uma ajuda?

Aqui o Servlet:

public void popularObjeto(HttpServletRequest request, HttpServletResponse response, Pessoa pessoa) throws ServletException, IOException{
        try{

            pessoa.setId(Long.valueOf((request.getParameter("id")!= null && !request.getParameter("id").isEmpty()) ? request.getParameter("id") : "0"));
            pessoa.setCpf((request.getParameter("cpf")!= null && !request.getParameter("cpf").isEmpty()) ? request.getParameter("cpf") : "");
            pessoa.setNome((request.getParameter("nome")!= null && !request.getParameter("nome").isEmpty()) ? request.getParameter("nome") : "");
            pessoa.setTelefone((request.getParameter("telefone")!= null && !request.getParameter("telefone").isEmpty()) ? request.getParameter("telefone") : "");
            pessoa.setEndereco((request.getParameter("endereco")!= null && !request.getParameter("endereco").isEmpty()) ? request.getParameter("endereco") : "");

        }catch(Exception e ){
            e.printStackTrace();
        }

    }


public void salvar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        FabricaConexao abreCon = new FabricaConexao();
        Connection con = abreCon.getConnection();
        ProdutoDAO pDao = new ProdutoDAO();
        Produto produto = new Produto();

        String btAcao = request.getParameter("acao");
        long id = Long.parseLong((request.getParameter("idProd") != null && !request.getParameter("idProd").isEmpty()) ? request.getParameter("idProd"):"0");

        RequestDispatcher ir = request.getRequestDispatcher("cadastro.jsp");
        ir.forward(request, response);

        if(id> 0 && btAcao!=null){
            produto = new Produto();
            preencher(request, response, produto);

            System.out.println("alguma coisa");

            if(btAcao.equals("Salvar")){
                if(produto.getIdProd()>0){
                    pDao.atualiza(con, produto);
                }
                else{
                    pDao.insere(con, produto);
                    System.out.println("Cadastrar");
                }
                RequestDispatcher listar = request.getRequestDispatcher("main?acao=listar");
                listar.forward(request, response);
            }
        }
    }


protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String btAcao = (request.getParameter("Salvar")!=null) ? request.getParameter("Salvar") : "";

        if(btAcao.equals("Salvar")){
            salvar(request, response);
        }
    }

Aqui o JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cadastro</title>
</head>
<body>

    <form action="main">

        <input name="idProd" readonly="readonly">
        <input name="nomeProd" type="text">
        <input name="qtdRecebido" type="text">
        <input name="prcU" type="text">
        <input name="prcT" type="text">

        <input name="acao" type="submit" value="Salvar">
    </form>

</body>
</html>

Bem, eu vi o erro a um bom tempo. O erro é (erro simples, por falta de atenção) que eu tava populando "Pessoa" e querendo jogar pra "Produto". Logo, eu não poderia táa usando "pessoa.set..." e querer popular "Produto produto = new Produto();". É isso.

  • Fala brother! aparece algum erro ?posta seus métodos insere() e atualiza().

    Ferrete   13 de ago de 2015
  • public void insere(Connection con, Produto produto){
            PreparedStatement stmt = null;
    
            try{
                stmt = con.prepareStatement("INSERT INTO entrada_prod (nome_prod, qtd_recebida, prc_u, prc_t) VALUE (?,?,?,?)");
    
                stmt.setString(1, produto.getNomeProd());
                stmt.setDouble(2, produto.getQtdRecebido());
                stmt.setDouble(3, produto.getPrcU());
                stmt.setDouble(4, produto.getPrcT());
    
                stmt.executeUpdate();
    
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    Lucas Sampaio   13 de ago de 2015
  • public void atualiza(Connection con, Produto produto){
            PreparedStatement stmt = null;
    
            try{
    
                //Revisar essa instrução, pra ver se vai ter que alterar mais alguma coisa
                stmt = con.prepareStatement("UPDATE entrada_prod SET nome_prod=?, prc_u=? WHERE id_prod=?");
    
                stmt.setString(1, produto.getNomeProd());
                stmt.setDouble(2, produto.getPrcU());
    
                stmt.executeUpdate();
    
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    Lucas Sampaio   13 de ago de 2015
  • Não dá erro no stack trace?

    Krismorte   13 de ago de 2015
  • Você debugou pra ver se chega pelo menos no servlet?

    leandrow3b   13 de ago de 2015
Mostrar todos os 7 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsp ou faça a sua própria pergunta.