Java - Validar si EXISTE o NO un registro en la base de datos

   
Vista:

Validar si EXISTE o NO un registro en la base de datos

Publicado por liz (4 intervenciones) el 07/01/2015 18:39:42
Hola expertos:
Estoy haciendo una aplicacion con Netbeans muy sencilla pero ya me desesperé porque no se mucho sobre como validar que NO EXISTE UN REGISTRO en la base de datos. La interfaz consiste en consultar un número de expediente que el usuario ingresará en la tabla de la base de datos, si existe le envia un mensaje al usuario hasta aqui si lo hace, lo que no me hace es mostrar el mensaje cuando éste codigo no existe.
¿Me puden ayudar o sugerir como le puedo hacer por favor? Se los agradeceré mucho.
En mi JFrame tengo un boton: Guardar (btnGuardar) primero validé que lo que introduzca el usuario sean números y no estén vacíos, y luego llamo el método "ValidaExpediente" de la clase Consultas (c). Si me muestra el mensaje cuando si existe el expediente pero cuando no existe no hace nada, es decir no sale el mensaje de error que puse en el ultimo if.

Código del botón Guardar:
1
2
3
4
5
6
7
8
private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {
        String exp = txtExp.getText();
        if(exp.length() < 13 || exp.isEmpty()){
            JOptionPane.showMessageDialog(null, "El número del expediente tiene que ser de 13 digítos", "Error de captura",JOptionPane.ERROR_MESSAGE);
        }  else {
                    c.ValidaExpediente(exp);
           }
 }

Código ValidaExpediente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void ValidaExpediente(String exp) {
 
        try{
            pstm = con.getConnection().prepareStatement("SELECT escExpediente FROM KCPro WHERE escExpediente = '" + exp+ "'");
            res = pstm.executeQuery();
            while(res.next()){
                String expedienteKCPro = res.getString("escExpediente");
                if ( exp.equals(expedienteKCPro) ){
                    JOptionPane.showMessageDialog(null, "Expediente encontrado: " + expedienteKCPro, "Mensaje",JOptionPane.INFORMATION_MESSAGE);
                } else
                    if ( !exp.equals(expedienteKCPro) ) {
                        JOptionPane.showMessageDialog(null, "NO existe el expediente: " + exp, "Error de expediente",JOptionPane.ERROR_MESSAGE);
                    }
            }
            res.close();
        } catch(SQLException e){
            JOptionPane.showMessageDialog(null, e);
        }
 
    }

Se que para muchos es una aplicacion muy sencilla pero para mi que estoy aprendiendo aun me cuesta, ojala alguien pueda orientarme como lograrlo, Gracias. ¡¡¡
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de juan esteban

Validar si EXISTE o NO un registro en la base de datos

Publicado por juan esteban (21 intervenciones) el 07/01/2015 21:08:29
Hola
pruebalo asi haber si te da ..


1
2
3
if ( exp.equals(null) ) {
    JOptionPane.showMessageDialog(null, "NO existe el expediente: " + exp, "Error de expediente",JOptionPane.ERROR_MESSAGE);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Validar si EXISTE o NO un registro en la base de datos

Publicado por liz (4 intervenciones) el 07/01/2015 23:26:56
Hola

Gracias por tu aporte pero que crees? ya lo probó y sigue sin hacer nada cuando NO EXISTE. También lo probé con el valor del campo de la Base de Datos el cual se llama escExpediente, y con el String en el que guardo ese el valor expedienteKCPro. Tambien lo probé con:
if ( res.getFetchSize() == 0 )
y nada. Ayudaaaaaaaaa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Armel Peña

Validar si EXISTE o NO un registro en la base de datos

Publicado por Armel Peña armelpena@hotmail.com (3 intervenciones) el 14/01/2015 15:52:15
Hola,

Te sugiero lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void ValidaExpediente(String exp) {
 
        try{
            pstm = con.getConnection().prepareStatement("SELECT escExpediente FROM KCPro WHERE escExpediente = '" + exp+ "'");
            res = pstm.executeQuery();
            if(res.next()){
                  JOptionPane.showMessageDialog(null, "Expediente encontrado: " + expedienteKCPro, "Mensaje",JOptionPane.INFORMATION_MESSAGE);
 
} else
 JOptionPane.showMessageDialog(null, "NO existe el expediente: " + exp, "Error de expediente",JOptionPane.ERROR_MESSAGE);
 
            res.close();
        } catch(SQLException e){
            JOptionPane.showMessageDialog(null, e);
        }
 
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Validar si EXISTE o NO un registro en la base de datos

Publicado por Esteban (1 intervención) el 31/10/2015 02:09:27
Gracias, me funcionó de una
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Validar si EXISTE o NO un registro en la base de datos

Publicado por Efrain (1 intervención) el 08/03/2016 00:26:53
una pregunta la variable res donde la declaras???????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Validar si EXISTE o NO un registro en la base de datos

Publicado por Fernando Corona corona.perez.fernando@gmail.com (2 intervenciones) el 14/04/2016 19:35:21
Excelente código, me ayudaste mucho, gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar