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

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?

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…

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

[code]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;
}[/code]