Foros del Web » Programación para mayores de 30 ;) » Java »

Busqueda de datos en un JTextField

Estas en el tema de Busqueda de datos en un JTextField en el foro de Java en Foros del Web. Saludos a toda la comunidad, Estoy realizando una pequeña aplicación en Java en donde yo ingreso un dato para que este sea buscado en mi ...
  #1 (permalink)  
Antiguo 26/06/2014, 22:09
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Busqueda de datos en un JTextField

Saludos a toda la comunidad,

Estoy realizando una pequeña aplicación en Java en donde yo ingreso un dato para que este sea buscado en mi base de datos y me despliegue cierta información en diferentes JTextField pero al momento de limpiar mis campos y hacer una nueva búsqueda me arroja la excepción de mi bloque Catch diciéndome error en la base de datos y no me despliega mis datos.

Este es el código que tengo dentro de mi botón Buscar:

Código:
private void btnBuscar1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
         
         try
            {
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/catalogo","root","root"); //Direccion URL de la BD 
                Statement st = conn.createStatement();
                ResultSet rs1 = st.executeQuery("SELECT Codigo, Nombre, Descripcion, Compatibilidad, Utilidad FROM cat_productos WHERE cat_productos.Codigo = '"+txtCodigo1.getText()+"' OR cat_productos.Nombre = '"+txtNombre1.getText()+"'");
       

                    if (rs1.next()) {
                        cod = rs1.getString(1);
                        nom = rs1.getString(2);
                        des = rs1.getString(3);
                        com = rs1.getString(4);
                        util = rs1.getString(5);
                        txtCodigo1.setText(cod);
                        txtNombre1.setText(nom);
                        jTextDescripcion.setText(des);
                        modelolist.addElement(com);
                        jTextUtilidad.setText(util);
                 
             
                    }
                    
            }
            catch(Exception e)
            {
                JOptionPane.showMessageDialog(null, "Error en la Base de Datos", "Aviso", JOptionPane.WARNING_MESSAGE);  
            }
        btnBuscar1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        lblFunciones1.setText("En Ejecución....");
    }

Espero y me puedan auxiliar, se los agradeceria mucho.
  #2 (permalink)  
Antiguo 27/06/2014, 09:42
 
Fecha de Ingreso: diciembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 0
Respuesta: Busqueda de datos en un JTextField

Hola jalm2_3

Asi a simple vista veo que:

Código Java:
Ver original
  1. cod = rs1.getString(1); /// estas tratando el cod como un String,  yo siempre uso los cod como enteros, a menos que lo hayas hecho asi a proposito
en tal caso que sea un int iria.
Código Java:
Ver original
  1. cod = rs.getInt(1));

Yo el while lo haria asi:

Código Java:
Ver original
  1. if (rs1.next()) {
  2.    cod = rs.getInt(1));
  3.    nom = rs1.getString(2);
  4.    des = rs1.getString(3);
  5.    com = rs1.getString(4);
  6.    util = rs1.getString(5);
  7.  
  8.    txtCodigo1.setText(Integer.parseInt(cod)); // le hago el casteo
  9.    txtNombre1.setText(nom);
  10.    jTextDescripcion.setText(des);
  11.    jTextUtilidad.setText(util);
  12.    modelolist.addElement(com);
  13.  
  14. }

espero te sirva de algo.

Saludos
  #3 (permalink)  
Antiguo 27/06/2014, 10:03
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Busqueda de datos en un JTextField

Una cosa es que al usuario no quieras que le llegue el texto de una excepción, y otra es que no le llegue al desarrollador.

Siempre debes pintar/tratar una excepción para poder saber qué ha ocurrido, tu error puede ser de conexión de base de datos o que com es null o cualquier cosa, pero no lo sabrás porque lo conviertes todo en un mensaje.

Por lo demás el código no está bien, creas una conexión nueva cada vez que pulsas un botón, y ni la cierras ni cierras el Statement.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 27/06/2014, 10:31
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Busqueda de datos en un JTextField

Te agradezco tu respuesta Xerelo, pero entonces que puedo hacer para resolver este problema porque cada vez que abro el programa y consulto un dato si lo encuentra pero al momento de buscar un nuevo registro no me despliega nada.
  #5 (permalink)  
Antiguo 27/06/2014, 11:24
 
Fecha de Ingreso: diciembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 0
Respuesta: Busqueda de datos en un JTextField

Es cierto lo que dices Xerelo :


"
Siempre debes pintar/tratar una excepción para poder saber qué ha ocurrido, tu error puede ser de conexión de base de datos o que com es null o cualquier cosa, pero no lo sabrás porque lo conviertes todo en un mensaje."


yo capturaria la excepción asi:

Código Java:
Ver original
  1. catch (SQLException e) {
  2.  
  3.         JOptionPane.showMessageDialog(null, e.getMessage());
  4.                    
  5.         }

y apartir de la exepcion, podes encontrar ideas para resolver los errores.

Saludos
  #6 (permalink)  
Antiguo 28/06/2014, 06:34
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Busqueda de datos en un JTextField

Nickou, lo que propones funciona, pero no es la forma correcta de hacer las cosas. Al usuario hay que darle mensajes de error claros, y una excepción no lo es para quien no sabe.

Cuando desarrolléis debéis acostumbrados a guardar los errores en fichero (log) que es lo único que tendréis cuando un usuario lo use, o como mínimo a sacarlos por consola. Los pop up o mensajes mostrados en la aplicación son para el usuario, por lo que sólo tienen que mostrar la información necesario para que lo corrija o sepa que hay un problema.

Usuario/password no válido es para el usuario, ArrayIndexOutOfBounds no.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 29/06/2014, 05:26
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 22 años, 5 meses
Puntos: 361
Respuesta: Busqueda de datos en un JTextField

Totalmente de acuerdo, además a los usuarios no les gusta que aparezcan "ventanitas extra".

Etiquetas: busqueda, jtextfield, soporte-y-sugerencias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:09.