Dúvida: Como criar um método de consulta usando 3 camadas?

3 respostas
simone.tafinel

Pessoal,
Estou com uma dúvida cruel…
Tenho um sistema q tem a camada de interface, controle e acesso.
Meu problema está em, a partir do controle, mandar uma consulta para o acesso, e o acesso retornar os dados encontrados.
Um exemplo:
O método abaixo está na classe de controle, que foi chamado a partir da classe de interface passando-se como parametro o CNPJ.

public static void busca_dados_cli(CNPJ_cli) {  
      
     String consulta = "select nome_cli, fone_cli from cliente where CNPJ_cli = "  + CNPJ_cli;
      acesso ac = new acesso();
      ac.conecta();
      ac.dados_cli(consulta)
       
               
  }

O método abaixo, é o da classe de acesso, que receberá a query gerada na de interface:

public void dados_cli(String consu){
        String [] cp;
    
    try
    {
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery(consu); 
        rs.next();
        String nome_cli = rs.getString("nome_cli");
        String ende_cli = rs.getString("ende_cli");

        cp[0] = nome_cli;
        cp[1] = nome_cli;
        
        return cp;

        //
        
        rs.close();
        st.close();
    }
    catch(SQLException SQLerro)
    {
        JOptionPane.showMessageDialog(null, SQLerro.getMessage(), "Mensagem de erro de Acesso ao Banco de Dados", JOptionPane.INFORMATION_MESSAGE);
    }
 
}

Como este método retorna a variavel ‘cp’, sei que ele nao deveria ser void, como eu faço então a declaração dele?

3 Respostas

cv1
simone.tafinel

Olá, cv, eu já havia visto esse link, numa busca que fiz aqui, mas ainda nao resolve meu problema, eu ja tenho a classe de acesso e tudo, a minha duvida mesmo é como fazer a passagem de parametros, pegar o q retornou do select e passar para o controle para mostrar na tela…

m4des

Olá simone.tafinel, não sei se resolve seu problema, mas tente usar isto:

public  String [] cp;

public String dados_cli(String consu){
             
     try
     {
         Statement st = con.createStatement();
         ResultSet rs = st.executeQuery(consu); 
         rs.next();
         String nome_cli = rs.getString("nome_cli");
         String ende_cli = rs.getString("ende_cli");
 
         cp[0] = nome_cli;
         cp[1] = nome_cli;
                 
               
         rs.close();
         st.close();
     }
     catch(SQLException SQLerro)
     {
         JOptionPane.showMessageDialog(null, SQLerro.getMessage(), "Mensagem de erro de Acesso ao Banco de Dados", JOptionPane.INFORMATION_MESSAGE);
     }
 return cp;
  }
Criado 19 de novembro de 2006
Ultima resposta 19 de nov. de 2006
Respostas 3
Participantes 3