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

consulta con like en java + mysql

Estas en el tema de consulta con like en java + mysql en el foro de Java en Foros del Web. hola estoy realizando un proyecto en el cual estoy implementando con un texfield con el evento keyReleased, que cada se introduzca un carácter se este ...
  #1 (permalink)  
Antiguo 27/02/2011, 14:21
Avatar de guichogdl  
Fecha de Ingreso: abril-2010
Ubicación: gdl
Mensajes: 131
Antigüedad: 14 años, 7 meses
Puntos: 1
Pregunta consulta con like en java + mysql

hola estoy realizando un proyecto en el cual estoy implementando con un texfield con el evento keyReleased, que cada se introduzca un carácter se este ejecutando una consulta mostrando en un Jtable los resultados, con ayuda del LIKE 'A%' de MySQL.

EL problema que se me presento es que al ir introduciendo los caracteres para mostrar resultados, no se ejecuta la consulta, ya que entra a la excepción, ya revise que este recibiendo informacion del texfield y que funcione el metodo que recibe la consulta con esta sentencia

Código PHP:
Ver original
  1. stconsultarCLIENTES_R = conn.prepareStatement("SELECT * FROM cliente WHERE nombre=?");
todo sale bien, introduzco un nombre existente y me lo muestra en el Jtable, pero lo que necesito es que al ir introduciendo caracter por caracter se muestre resultados que contengan dichos caracteres, para ello modique la sentencia anterior en la siguiente forma, pero no consigo hacerla funcionar, como mencionaba mas arriba, entra a la excepcion

Código PHP:
Ver original
  1. stconsultarCLIENTES_R = conn.prepareStatement("SELECT * FROM cliente WHERE nombre like '?%'");

creo que tengo mal la sintaxis en la sentencia donde pongo el like, eh buscado por la red pero no eh dado con la sintaxis que me de resultado, eh intentado con '%?%' y '%$?%' y todo sigue igual, sigue entrando a la exception, espero alguien me pueda echar la mano como deberia declarar la sentencia, agrego el metodo que uso para recibir el resultado de la consulta.


Código PHP:
Ver original
  1. public ResultSet consultarClientes_R (String nombre) { // se manda llamar desde la interfaz grafica
  2.  
  3.     try {
  4.         stconsultarCLIENTES_R.setString(1, nombre);
  5.         ResultSet rs = stconsultarCLIENTES_R.executeQuery();
  6.  
  7.         return rs;
  8.     } catch (SQLException ex) {
  9.        
  10.         System.out.println("entro a la excepcion");
  11.       return null;
  12.     }
  13.   }

muchas gracias de antemano por su ayuda
  #2 (permalink)  
Antiguo 28/02/2011, 02:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 11 meses
Puntos: 21
Respuesta: consulta con like en java + mysql

De php no se mucho pero si ? es una variable, la consulta en java no seria asi:

"SELECT * FROM cliente WHERE nombre like ' " + ? + "%' "

es decir si tenemos un String letra="j"

"SELECT * FROM cliente WHERE nombre like ' " + j + "%' "

asi esa consulta te mostrara los clientes cuyo nombre comienze por j, no se si eso era lo q querias

Saludos
  #3 (permalink)  
Antiguo 28/02/2011, 09:48
Avatar de guichogdl  
Fecha de Ingreso: abril-2010
Ubicación: gdl
Mensajes: 131
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: consulta con like en java + mysql

gracias por responder, pero la variable que consulta no la declaro en el Statement, si no como parámetro el método que recibe la consulta, ya pude solucionar el problema.

lo que realice fue quitar las comillas simples en el ? y el % y declararlo en el método, quedando de la siguiente manera en el Statement

Código PHP:
Ver original
  1. stconsulta_rapida_MENU = conn.prepareStatement("SELECT * FROM Alimentos_Bebidas WHERE nombre_alimento like ?");

y en el método lo declare así:

Código PHP:
Ver original
  1. public ResultSet consultarClientes_R (String nombre) { // se manda llamar desde la interfaz grafica
  2.  
  3.     try {
  4.         stconsultarCLIENTES_R.setString(1, nombre + "%");
  5.         ResultSet rs = stconsultarCLIENTES_R.executeQuery();
  6.  
  7.         return rs;
  8.     } catch (SQLException ex) {
  9.  
  10.         System.out.println("entro a la excepcion");
  11.       return null;
  12.     }
  13.   }

espero les sirva de algo!! saludos
  #4 (permalink)  
Antiguo 28/02/2011, 21:27
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 15 años
Puntos: 9
Respuesta: consulta con like en java + mysql

Sale error porque no esta tomando a ? como un parametro de entrada
Código PHP:
stconsultarCLIENTES_R conn.prepareStatement("SELECT * FROM cliente WHERE nombre like '?%'"); 
posibles soluciones

1. Completa la sentencia SQL especificando el parametro de busqueda de la siguiente manera:

Código PHP:
stconsultarCLIENTES_R conn.prepareStatement("SELECT * FROM cliente WHERE nombre like '"+tu_parametro+"%'"); 
2. Utiliza la funcion concat de mysql para pasar el parametro de entrada
Código PHP:
stconsultarCLIENTES_R conn.prepareStatement("SELECT * FROM cliente WHERE nombre like like concat(?,'%') ;"); 
espero te ayude

se malo

__________________
Problem?
Estoy aquí
Foro Code Army

Etiquetas: consulta, mysql
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 22:15.