Tratamento de Erro ao digitar um valor errado

3 respostas
JuniorMcz

Boa Tarde Galera…

Gostaria de saber com voces como faria o tratamento de erro ao usuario digitar um “valor” que nao esta no banco de dados, ou seja digitar uma valor errado.

meu codigo de ao aperta no botao de consulta é este

private void btnParceiro(java.awt.event.ActionEvent evt) {                               
  
        String fone = JOptionPane.showInputDialog("Digite um telefone:");  
   
        if (fone != null) {  
  
            CadParceiro p = ServicoCadParceiro.getInstance().consultar(fone);  
  
            txtCodigoParceiro.setText(String.valueOf(p.getCodigoParceiro()));  
            txtNomeParceiro.setText(p.getNome());  
            txtEnderecoParceiro.setText(p.getEndereco());  
            txtTelefoneParceiro.setText(p.getTelefone());  
            txtCelularParceiro.setText(p.getCelular());  
              
             }            
    }

e classe DAO de consulta é este

public CadParceiro consultar(String telefone) throws Exception {  
        BancoDeDados bd = new BancoDeDados();  
        bd.conectar();  
  
        String sql = "select * from cadparceiro where telefone = ?";  
        PreparedStatement p = bd.getPreparedStatement(sql);  
        p.setString(1,telefone);  
  
        ResultSet res = p.executeQuery();  
  
        if(res.next()){  
            CadParceiro c = new CadParceiro();  
            c.setCodigoParceiro(res.getInt("codigoparceiro"));  
            c.setNome(res.getString("nome"));  
            c.setEndereco(res.getString("endereco"));  
            c.setComplemento(res.getString("complemento"));  
            c.setTelefone(res.getString("telefone"));  
            c.setCelular(res.getString("celular"));  
              
           return c;  
        }  
        bd.desconectar();  
        return null;  
    }

Valeu galera…

3 Respostas

WendersonLP

Caso o ResultSet seja iqual a null, significa que nenhuma linha foi retornada durante a consulta.

JuniorMcz

Aew blz…

Seria como… estou tentando assim mas esta dando pau…

ResultSet res = p.executeQuery();

if (res.first() == false){
        System.out.print("Parceiro não encontrado");
    }
    else{

    if (res.next()) {
             .
             .
             .
S

Primeiramente, um PreparedStmt não retorna null. Vide doc.

O ResultSet inicia-se uma posição antes do primeiro, dar um first() ou next() vai retornar um falso caso não haja resultados. A diferença é que na primeira consulta o next leva um registro a frente, logo o primeiro, e o first posicionará no primeiro registro.

Com o retorno falso da consulta, você poderia lançar uma exceção a ser capturada e exibida a seu usuário, ou deixar que o null seja lançado até a GUI e lá você ignora os resultados e mostra uma mensagem simples de ‘Usuário não encontrado’ ou algo do tipo.

Criado 3 de junho de 2010
Ultima resposta 3 de jun. de 2010
Respostas 3
Participantes 3