método não retorna ResultSet

5 respostas
J

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;
}

5 Respostas

R

o MVC ai foi pro espaço né.

J

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

R

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:

Z

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:
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;
}
J

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

Criado 31 de julho de 2005
Ultima resposta 1 de ago. de 2005
Respostas 5
Participantes 3