Dúvida

3 respostas
G

Olá...
Qual seria a melhor alternativa para realizar esse servlet...
eu quero que de acordo com a opção escolhida ele execute determinado sql....
Por exemplo : clicou em inserir ele realiza o sql de insert...

import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class TltSrv003Areas extends HttpServlet 
{        
    private final static String Drv       = "org.gjt.mm.mysql.Driver";
    private final static String End_Banco = "jdbc:mysql://127.0.0.1:3306/talentos";
    private Statement Stm_Aux    = null;
    private Connection Con_Banco = null; 
    
    
    protected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException 
    {                        
     String msg_sucesso   = null;            
     String pr_idt        = (String) request.getAttribute("Edtidt");
     String pr_descricao  = (String) request.getAttribute("Edtdescricao");
     String pr_estado     = (String) request.getAttribute("Edtestado");
                     
     Prc_MontarCodSql();
    
    
     try
     {
       try
          {                
             Class.forName(Drv);
             Con_Banco    = DriverManager.getConnection(End_Banco);
             Stm_Aux      = Con_Banco.createStatement();            
             int Cod_Retorno = 1;//  = Stm_Aux.executeUpdate();
             if (Cod_Retorno == 1) {                             
                System.out.println("<B>" + "Sucesso ao efetuar inclusão." + "</B><BR>");
             }     
          }     
          catch (ClassNotFoundException e) 
          {                 
          System.out.println("<B>" + "Erro ao efetuar inclusão." + "</B><BR>");            
             
          System.out.println("Driver não encontrado ou não existe."); 
          }
     }                  
     catch (SQLException e) 
     { 
        System.out.println("Driver não está Funcionando.");    
     } 
          
    }
   
    
         private void Prc_MontarCodSql()  
         {                   
            String cod_sql_insert   = "INSERT INTO AREAS(descricao) VALUES('"+ pr_descricao +"')";
            String cod_sql_delete   = "DELETE FROM AREAS WHERE IDT =" + pr_idt;
            String cod_sql_update   = "UPDATE AREAS SET DESCRICAO  = '"+pr_descricao+"'WHERE IDT  =  "+pr_idt; 
         }

    }

Obrigado... :roll: [/url]

3 Respostas

G

JavaPlayer

Não sei bem se está é sua dúvida, mas ai vai duas dicas:
[color="darkblue"]
Utilizando um parâmetro do tipo String (lembrando que no switch deve ser usuado uma String de 1 posição Ex. char) para cada uma das letras.

private void Prc_MontarCodSql(String tipoSolicitacao)  
{                    
    switch(tipoSolicitacao) {
        case "I": String cod_sql_insert   = "INSERT INTO AREAS(descricao) VALUES('"+ pr_descricao +"')";break;
        case "U": String cod_sql_delete   = "DELETE FROM AREAS WHERE IDT =" + pr_idt;break;
        default: String cod_sql_update   = "UPDATE AREAS SET DESCRICAO  = '"+pr_descricao+"'WHERE IDT  =  "+pr_idt;
    }            

}
[/color] -- Ou -- [color="green"] Utilize um parâmetro do tipo Inteiro onde cada número significa uma tipo de solicitação.
private void Prc_MontarCodSql(int tipoSolicitacao)  
{                    
    switch(tipoSolicitacao) {
        case 1: String cod_sql_insert   = "INSERT INTO AREAS(descricao) VALUES('"+ pr_descricao +"')";break;
        case 2: String cod_sql_delete   = "DELETE FROM AREAS WHERE IDT =" + pr_idt;break;
        default: String cod_sql_update   = "UPDATE AREAS SET DESCRICAO  = '"+pr_descricao+"'WHERE IDT  =  "+pr_idt;
    }            

}
[/color] Espero que tenha te auxiliado, caso seja isso que você queria.
G

Muito Obrigado pela sua ajuda… já me clareou outras dúvidas
mas eu preciso que o montarsql seja uma procedure e o executarsql seja outras procedure:

montar sql:

private void Prc_MontarCodSql() { String cod_sql_insert = "INSERT INTO AREAS(descricao) VALUES('"+ pr_descricao +"')"; String cod_sql_delete = "DELETE FROM AREAS WHERE IDT =" + pr_idt; String cod_sql_update = "UPDATE AREAS SET DESCRICAO = '"+pr_descricao+"'WHERE IDT = "+pr_idt; }

executar sql:

private void Prc_ExecutarSql(String cod_sql) { if (pr_estado == "I") { int Cod_Retorno = Stm_Aux.executeUpdate(cod_sql_insert); if (Cod_Retorno == 1) { System.out.println("<B>" + "Sucesso ao efetuar inclusão." + "</B><BR>"); } } }

G

JavaPlayer

Não sei se é bem isso que você quer, mas ai vai:

Você pode criar o exemplo de método que eu te passei para montar o SQL e dentro dele mesmo você pode chamar o método que executa o SQL, ou seja:

private void Prc_MontarCodSql(String tipoSolicitacao)  
{                    
    switch(tipoSolicitacao) { 
        case "I": String cod_sql   = "INSERT INTO AREAS(descricao) VALUES('"+ pr_descricao +"')";break; 
        case "U": String cod_sql   = "DELETE FROM AREAS WHERE IDT =" + pr_idt;break; 
        default: String cod_sql   = "UPDATE AREAS SET DESCRICAO  = '"+pr_descricao+"'WHERE IDT  =  "+pr_idt; 
    }
   Prc_ExecutarSql(cod_sql);

}

Depois executa o método responsável por executar o SQL:

private void Prc_ExecutarSql(String cod_sql) 
{ 
   int Cod_Retorno = Stm_Aux.executeUpdate(cod_sql_insert); 
   if (Cod_Retorno == 1) 
   {                              
     System.out.println("<B>" + "Sucesso ao efetuar inclusão." + "</B><BR>"); 
    } 
}

Até mais

Criado 15 de julho de 2004
Ultima resposta 19 de jul. de 2004
Respostas 3
Participantes 2