método não retorna ResultSet

Pessoal estou tentando passar como parametro, para outra classe.
Eu coloquei um JOptionPane no meio do código, aqui nesse método ele mostra algumas coisas, mas na outra classe o JOptionPane mostra null apenas

public ResultSet consulta() {
    
    try {
        String consulta = ("SELECT * FROM COCFUNCAO01");
        ResultSet rs = s.executeQuery(consulta);
         
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex);
    }
    return rs;
}

o MVC ai foi pro espaço né.

auhahuau
É que eu pulei direto pois não estava funcionando
Séra que pode ser isso?

Em vez de retornar um resultset, nesse mesmo método, extraia as informações dele e retorne alguma coisa, ex: uma classe de modelo, uma collection… ai você reduz o acoplamento.

Aqui:

catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex); }

Vc estaa acoplando a view com a persistência, faça o seguinte, adiciona na assinatura do métoro um throws SQLException , e tire esse try/catch, ai no local onde chama esse método faça o seguinte:


...
try{
consulta() ;
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}

Assim você continua fazendo a mesma coisa, só que de uma forma mais limpa, assim quando vc quiser mudar de swing para jsp/servlets, vc nem vai precisar mexer na sua camada de persistência. Vantagens que o MVC traz.

Espero ter ajudado, Abraço.
:smiley:

O problema está no fato de você ter declarado o resultset dentro do bloco try e tentar retorná-lo fora dele, onde a variável não existe mais. Deveria ter dado erro de compilação…

Tente isso:

[code]public ResultSet consulta() {
ResultSet rs = null;

try { 
	String consulta = ("SELECT * FROM COCFUNCAO01"); 
	rs = s.executeQuery(consulta); 
} catch (SQLException ex) { 
	JOptionPane.showMessageDialog(null, ex); 
} 

return rs;

}[/code]

Pois é, eu consegui fazer retornar

public ResultSet consulta() {
ResultSet rs = null;

try { 
	String consulta = ("SELECT * FROM COCFUNCAO01"); 
	rs = s.executeQuery(consulta); 
 return rs;
} catch (SQLException ex) { 
	JOptionPane.showMessageDialog(null, ex); 
} 
   return null;

}

e boa fungo uma BLZ
valeu pessoal