Busca no banco de dados

Olá Pessoal

Estou com um problema!
Faço uma busca no banco de dados, e quando o “número da proposta” não é encontrado eu gostaria de exibir uma mensagem para o usario, como deve fazer?

Obrigado

Cristiano

Só fazer

catch( Exception e )
{
     System.out.println( e );
}

Não te ajudou né? Que tal ser um pouco mais específico? :wink:

O código é o seguinte:

class BtnBuscar implements ActionListener{ // Botão Buscar

public void actionPerformed(ActionEvent e){

String numero=c1.getText();
String query=“select * from Proposta”+
“where Número=’”+String.valueOf(numero)+"’";

try{

String url=“jdbc:odbc:BDProposta”;
String usuario="";
String senha="";

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Connection con;
con=DriverManager.getConnection(url,usuario,senha);

Statement st=con.createStatement();
ResultSet rs=st.executeQuery(query);

while (rs.next()){

String numero2=rs.getString(“Número”);
String dataEntrada=rs.getString(“Data_de_Entrada”);
String valor=rs.getString(“Valor”);
String assunto=rs.getString(“Assunto”);
String responsavel=rs.getString(“Responsável”);
String prazo=rs.getString(“Prazo”);
String interessado=rs.getString(“Interessado”);
String situacao=rs.getString(“Situação”);
String dataContrato=rs.getString(“Data_de_Contratação”);
String numeroProcesso=rs.getString(“Número_do_Processo”);
String verba=rs.getString(“Verba”);
String andamento=rs.getString(“Andamento”);

c2.setText(numero2);c3.setText(dataEntrada);c4.setText(valor);
c5.setText(assunto);c6.setText(responsavel);c7.setText(prazo);
c8.setText(interessado);comboBox.setSelectedItem(situacao);
c9.setText(dataContrato);c10.setText(numeroProcesso);
c11.setText(verba);textArea.setText(andamento);

c1.setText("");
c1.requestFocus();
}

st.close();
con.close();

}
catch(Exception ex){ // Falta implementar corretamente
System.out.println(“Erro de conexao”);

}
}
}

Se você acha que é uma exceção que deve usar qual seria esta exceção?

Obrigado
Cristiano

JAMAIS faca isso:

catch(Exception ex){ // Falta implementar corretamente
    System.out.println("Erro de conexao");
} 

Fazendo dessa maneira, voce nao tem como saber o que deu errado. Troque esse pedaco de codigo para, por exemplo:

catch(Exception ex){ // Falta implementar corretamente
    System.out.println("Erro:");
    ex.printStrackTrace();

     // ou, System.out.println("erro: " + ex);
} 

Rafael

Obrigado pelas respostas

Mas continuo na mesma pois o java não pega erro algum no código, eu quero implementar algo para avisar ao usuario que o número do objeto proposta não foi encontrado no banco de dados.

Alguém poderia me dar o caminho das pedras.

Obrigado
Cristiano

A classe SQLException possue uma propriedade chamada errorCode, sendo que cada um dos códigos corresponde a um tipo de erro diferente. Procure no na documentação do driver que está usando, assim sabera retornar para o cliente o erro correto.

1 - Faça um

if(!rs.next()){
  throw new SeiLaoOqueNaoEncotnradoException("Sei la o que nao foi encotnrado.");
}
else{
//codigo normal rs.getBlablabla()
}

2 - Não conecte no banco de dados do seu formulário

3 - Use objetos para representar as entidades do seu sistema, não string isoladas

[]s

Obrigado!

Mas não funcionou, você poderia ser mais claro.

Obrigado

Cristiano

rs.next retorna true se seu resultset possui um próximo registro. Como o cursor começa em zero, você precisa dar um .next() para ir para o primeiro registro.

Se não existir o primeiro registro, ele vai retornar false, logo sua rs veio vazia, você pdoe lançar uma exceção para o usuário.

Crie uma exceção customizada e envie.

[]s