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

Problema con consulta Mysql

Estas en el tema de Problema con consulta Mysql en el foro de Java en Foros del Web. Buenas tardes conocedores de Java, tengo un problema y espero que me puedan ayudar, para algunos de ustedes esto parecerá sencillo pero apenas empiezo en ...
  #1 (permalink)  
Antiguo 27/06/2009, 12:41
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con consulta Mysql

Buenas tardes conocedores de Java, tengo un problema y espero que me puedan ayudar, para algunos de ustedes esto parecerá sencillo pero apenas empiezo en este lenguaje de programación, mi problema es el siguiente:

Quiero hacer una consulta que verifique si un dato existe en mi base de datos me mande un mensaje que diga "El aval existe", y en caso contrario que me digan que "El aval no existe":

Código:
public void select(Connection conn) throws Exception{
          
           Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            rs = st.executeQuery ("SELECT Rfc_av FROM aval WHERE Rfc_av LIKE '%"+bus_cta+"%'");

           
            
                if(rs.next()){
              javax.swing.JOptionPane.showMessageDialog(this, "El aval si existe");
             } else {
            
              javax.swing.JOptionPane.showMessageDialog(this, "El aval no existe");
            }
           

}
El problema es que siempre me dice que el aval si existe, alguien me puede decir que esta mal?. Gracias.
  #2 (permalink)  
Antiguo 27/06/2009, 13:23
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con consulta Mysql

Habia puesto algo antes pero me puse a investigar y ahora ya no estoy seguro por eso lo borre

lo que deberias es hacer un select count(*) y en el if comparar si es un cero o diferente de cero

Última edición por drac94; 27/06/2009 a las 13:32
  #3 (permalink)  
Antiguo 27/06/2009, 14:04
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta Mysql

Gracias por tu respuesta.

Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSI TIVE, ResultSet.CONCUR_READ_ONLY);
String consul = "SELECT COUNT(Rfc_av) FROM aval WHERE Rfc_av LIKE '%"+bus_cta+"%'";
rs = st.executeQuery (consul);


if(rs.next()!=0){
javax.swing.JOptionPane.showMessageDialog(this, "El aval si existe");
} else {

javax.swing.JOptionPane.showMessageDialog(this, "El aval no existe");
}


Agrego el count, pero me sale error en el IF por que dice que los tipos no son compatibles, ¿como le hago?
  #4 (permalink)  
Antiguo 27/06/2009, 15:09
 
Fecha de Ingreso: noviembre-2008
Mensajes: 115
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Problema con consulta Mysql

el metodo next de ResultSet, devuelve un boolean, no un int, Lo que deberias hacer, es mover el cursor una posicion (por que el count siempre te va a devolver algo), obtener el valor de lo que te ha devuelto con la columna, por ejemplo, y luego compararlo. Es decir, algo como:


Código:
//Aqui haces la consulta y rellenas el resultset
rs.next();

if(rs.getInt(0) != 1 )
   //haz lo que sea si existe
else
   //haz lo que sea si no existe
Espero que te sirva.

Última edición por jesuscoro; 27/06/2009 a las 15:23 Razón: Comprobe cual era la primera columna
  #5 (permalink)  
Antiguo 27/06/2009, 16:47
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta Mysql

Disculpa pero no pude solucionar el problema de esa manera, si le pongo 0 me dice que el rango no es valido, q 0 < 1, y si le pongo 1 me sigue poniendo siempre que el aval si existe. ¿No crees que pueda yo tener un error a la hora de hacer la consulta?, o ¿de que otra manera lo podría intentar?. Gracias.
  #6 (permalink)  
Antiguo 27/06/2009, 18:11
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con consulta Mysql

Código PHP:
Statement st conn.createStatement(ResultSet.TYPE_SCROLL_INSENSI TIVEResultSet.CONCUR_READ_ONLY);
String consul "SELECT COUNT(Rfc_av) FROM aval WHERE Rfc_av LIKE '%"+bus_cta+"%'";
rs st.executeQuery (consul);

while(
rs.next()){
if(
rs.getInt("COUNT(Rfc_av)")
{
javax.swing.JOptionPane.showMessageDialog(this"El aval si existe");
} else {
javax.swing.JOptionPane.showMessageDialog(this"El aval no existe");
}

  #7 (permalink)  
Antiguo 27/06/2009, 18:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 115
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Problema con consulta Mysql

Si puedes pon aqui lo que buscas en la base de datos y lo que obtienes de ella.

Lo que dices de que tal vez este mal la consulta, todo depende de lo que quieras buscar. Sabes como funciona mysql, verdad? Por si acaso, la consulta que estas haciendo dice que saque todas las columnas cuyo Rfc_av empiece con cualquier cosa, luego tenga la cadena que le pasas y acabe con cualquier cosa. Si lo que quieres es que el rfc_av sea igual a la cadena que le pasas, tendrias que hacer rfc_av = cadena. Perdona si ya lo sabias, pero por si acaso......
  #8 (permalink)  
Antiguo 27/06/2009, 22:19
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta Respuesta: Problema con consulta Mysql

Hola que tal tu busqueda es con filtro o le das un valor para que ejecute la consulta ? por que la verdad no entiendo porque pones like ya que si hay un valor que tenga igualdad con el filtro el ResultSet de movera y siempre te manda true
en cambio si solo le mandas select campo from tabla where campo = parametro
si lo encuentra el ResultSet se move de lo contrario no lo encuentra...
  #9 (permalink)  
Antiguo 28/06/2009, 13:19
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta Mysql

Al parecer era más sencillo de lo que parecia, estaba bien como lo puse al principio solo me falto poner el getText...:

String consul = "SELECT Rfc_av FROM aval WHERE Rfc_av LIKE '%"+Rfc_av.getText().trim()+"%'";


Gracias a todos.
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:31.