Inserir dados no mySql com servlet

4 respostas
K

Bom dia para todos!

Fiz uma aplicação que consigo logar no sistema com os dados que jé existem no banco, mas

não consigo inserir dados no banco de dados através do sistema.

Criei as variáveis que vão pegar o conteúdo que foi informado na JSP:

String nome = request.getParameter(nome);

String endereco = request.getParameter(endereco);

String rg = request.getParameter(rg);

String cpf = request.getParameter(cpf);

int telefone = Integer.parseInt(request.getParameter(telefone));

e depois fiz o insert pra jogar no banco:

c.statement.executeUpdate(“insert into cliente (nomeCliente,enderecoCliente,foneCliente,rgCliente,cpfCliente) values (”+nome+","+endereco+","+telefone+","+rg+","+cpf+";");

O que tenho que fazer agora pra dispachar a requisição com a resposta???

O que está faltando pra salvar os dados no banco???

Desde já agradeço a ajuda de todos!!!

4 Respostas

H

Olá Kleber, boa tarde.

Vc poderia postar o código todo quando vc persiste os dados no banco de dados?

Caso você não saiba como fazer a navegação em um webserver, existe em minha assinatura um tutorial para isso. Mostra como leva dados de uma tela para

K

Esse é o código da servlet.

Com certeza ta muito fraco, estou começando com isso.

espero que possa me ajudar.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controleServ;

import dao.Conexao;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author kleber
 */
//@WebServlet(name="CadastroClie", urlPatterns={"/CadastroClie"})
public class CadastroClie extends HttpServlet {
    private RequestDispatcher dispatcher;
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

                String pagina = "/JSP/MenuPrincipal";
                
                String nome = request.getParameter("nome");
                String endereco = request.getParameter("endereco");
                String rg = request.getParameter("rg");
                String cpf = request.getParameter("cpf");
                int telefone = Integer.parseInt(request.getParameter("telefone"));

                int cont = 0;

                Conexao c = new Conexao();

                String erro = "erro";
                String nomeCli = "nome";

                c.conectar();
                c.resultset = c.statement.executeQuery("select * from cliente");
                int i = c.resultset.getRow();

             //   if(i > 0)
               // {
                    c.statement.executeUpdate("insert into cliente (nomeCliente,enderecoCliente,foneCliente,rgCliente,cpfCliente) values ("+nome+","+endereco+","+telefone+","+rg+","+cpf+";");
                //}
              //  c.statement.executeUpdate("insert into cliente (nomeCliente,enderecoCliente,foneCliente,rgCliente,cpfCliente) values ("+nome+","+endereco+","+telefone+","+rg+","+cpf+";");



           
              //  c.desconectar();

                
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet CadastroClie</title>");
                out.println("</head>");
                out.println("<body>");
                out.println("<meta http-equiv=\"refresh\" content=\"0;URL=JSP/MenuPrincipal.jsp\">");
              //  out.println("<h1>Servlet CadastroClie at " + request.getContextPath () + "</h1>");
                out.println("</body>");
                out.println("</html>");

               // if(login.equals(log) || senha == senh)
                //{
                    c.conectar();
                    //c.resultset = c.statement.executeQuery("select nomeFuncinario from funcionario where senhaFuncionario = "+senh+";");
                     c.resultset = c.statement.executeQuery("select nomeCliente from cliente where nomeCliente = "+nome+";");
                    c.resultset.next();
                    String nomeC = c.resultset.getString("nomeCliente");
                    dispatcher = getServletContext().getRequestDispatcher(pagina);
                    request.setAttribute(nomeCli,c);
                    dispatcher.forward(request, response);
                    c.desconectar();

               /* }
                else{

                    dispatcher = getServletContext().getRequestDispatcher(pagina);
                    request.setAttribute("erro", erro);
                    dispatcher.forward(request, response);
                }  */
                
        } catch (SQLException ex) {

            Logger.getLogger(CadastroClie.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }  // final do método processRequest
}  // final do servlet CadastroClie
_
c.statement.executeUpdate(&quot;insert into cliente (nomeCliente,enderecoCliente,foneCliente,rgCliente,cpfCliente) values (&quot;+nome+&quot;,&quot;+endereco+&quot;,&quot;+telefone+&quot;,&quot;+rg+&quot;,&quot;+cpf+&quot;)&quot;+&quot;;&quot;);

primeiro que vc nao coloco o parenteses para fechar o value

ao inves disso
//   if(i &gt; 0)  
               // {  
                    c.statement.executeUpdate(&quot;insert into cliente (nomeCliente,enderecoCliente,foneCliente,rgCliente,cpfCliente) values (&quot;+nome+&quot;,&quot;+endereco+&quot;,&quot;+telefone+&quot;,&quot;+rg+&quot;,&quot;+cpf+&quot;;&quot;);  
                //}  
              //  c.statement.executeUpdate(&quot;insert into cliente (nomeCliente,enderecoCliente,foneCliente,rgCliente,cpfCliente) values (&quot;+nome+&quot;,&quot;+endereco+&quot;,&quot;+telefone+&quot;,&quot;+rg+&quot;,&quot;+cpf+&quot;;&quot;);
use
//Pega os Valores dos campos
                String nome = request.getParameter(&quot;nome&quot;);  
                String endereco = request.getParameter(&quot;endereco&quot;);  
                String rg = request.getParameter(&quot;rg&quot;);  
                String cpf = request.getParameter(&quot;cpf&quot;);  
  
//salvar no bd
 try{

//Faz uma declaraçao para dpois vc adicionar os campos,ou seja, ja esta predefinido como vai ser, cada &quot;?&quot; é um campo
    PreparedStatement stmt = c.prepareStatement(&quot;INSERT INTO recado VALUES(?,?,?,?,?,?)&quot;);

    stmt.setInt     (1,0);              //stmt.setInt pois o campo é inteiro 1 pq é o primeiro parametro e 0 pois estous considernado que a sua PK é auto_increment
    stmt.setString  (2,nome);       //SetString pois é um texto e 2 pois ocupa a segunda posiçao,e nome é a sual variavel
    stmt.setString  (3,endereco);  //SetString pois é um texto e 2 pois ocupa a segunda posiçao,e endereco é a sual variavel
    stmt.setString  (4,telefone);     //SetString pois é um texto e 2 pois ocupa a segunda posiçao,e telefone é a sual variavel
   stmt.setString  (5,rg);             //SetString pois é um texto e 2 pois ocupa a segunda posiçao,e rg é a sual variavel
stmt.setString  (6,cpf);               //SetString pois é um texto e 2 pois ocupa a segunda posiçao,e cpf é a sual variavel
    stmt.executeUpdate();   //executa o comando trocando os ? pelos valores das variaveis

//retorna erro caso a syntax esteja errada
    } catch(SQLException e){
        out.println(&quot;Erro no Sql&quot; +e.getMessage());

            }
}

Eu faço assim aqui da certo tenta ai!!Bom trabalho!!

K

E como seria o método prepareStatement???

Criado 28 de novembro de 2010
Ultima resposta 28 de nov. de 2010
Respostas 4
Participantes 3