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

Buscar en varios campos ¿Se puede hacer?¿Resultset?

Estas en el tema de Buscar en varios campos ¿Se puede hacer?¿Resultset? en el foro de Java en Foros del Web. Hola. Estoy realizando una aplicación de gestión de clientes con swing, de momento me muevo por los registros con el resultset (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE) Me muevo, ...
  #1 (permalink)  
Antiguo 03/07/2014, 05:13
 
Fecha de Ingreso: enero-2005
Mensajes: 85
Antigüedad: 19 años, 2 meses
Puntos: 0
Busqueda Buscar en varios campos ¿Se puede hacer?¿Resultset?

Hola.
Estoy realizando una aplicación de gestión de clientes con swing, de momento me muevo por los registros con el resultset (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE)
Me muevo, actualizo, creo nuevos registros y borro registro perfectamente.

Ahora quiero preparar la búsqueda y mi idea es hacer un buscador que busque la palabra o parte de la palabra en cualquiera de los campos de la base de datos o hacer la busqueda en el resultset si se pudiera.

lo campos:

Código:
id_cliente | int(11)      | NO   | PRI | NUL
 nombre     | varchar(80)  | YES  |     | NUL
 apellidos  | varchar(80)  | YES  |     | NUL
 direccion  | varchar(120) | YES  |     | NUL
 nif        | varchar(20)  | YES  |     | NUL
 localidad  | varchar(30)  | YES  |     | NUL
 provincia  | varchar(30)  | YES  |     | NUL
 cod_postal | char(6)      | YES  |     | NUL
 email      | varchar(30)  | YES  |     | NUL
 fijo       | varchar(20)  | YES  |     | NUL
 movil      | varchar(20)  | YES  |     | NUL
 entidad    | varchar(30)  | YES  |     | NUL
 cuenta     | varchar(40)  | YES  |     | NUL
 notas      | varchar(255) | YES  |     | NUL
¿Seria posible hacer la busqueda en todos los campos? Con la funcion LIKE de mysql solo me permite hacer la busqueda en una determinada columna, pero no se si sería posible de otra manera, bien desde mysql o en el mismo resultset

O sea la idea es no hacer un campo de búsqueda como: busqueda por nombre etc, si no uno general que si pongo un codigo postal por ejemplo me imprima todos las filas que contengan ese codigo postal

Un saludo
__________________
Videos Graciosos
  #2 (permalink)  
Antiguo 03/07/2014, 05:28
 
Fecha de Ingreso: enero-2005
Mensajes: 85
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Buscar en varios campos ¿Se puede hacer?¿Resultset?

Estoy pensando que una posible solución podría ser preparar una consulta dinámica con el operador like y comodines de la siguiente manera:

Cita:
mysql> select * from clientes where nombre like'%a%' and apellidos like"%%" and cod_post
al like"%06800%";
Es un ejemplo, de manera que si no rellenas nada en el campo apellidos por ejemplo, esa condición queda vacía. He probado la consulta y funciona aunque no creo que sea una forma muy optimizada de hacer una busqueda.

De esta manera tendría que hacer una variable por cada campo, e ir cargando en la select para despues obtener los id y meterlo todo en un jtable
__________________
Videos Graciosos
  #3 (permalink)  
Antiguo 03/07/2014, 06:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Buscar en varios campos ¿Se puede hacer?¿Resultset?

Depende de la cantidad de datos que tengas.

Si son muchos, es mejor como estás haciendo con el select a base de datos, evitando traer a memoria y tratar en tu código java todos los registros de la base de datos.

Si son pocos, es más rápido cargarlo todo en el JTable y luego añadir filtros directamente al JTable ( echa un ojo a la clase RowFilter http://chuwiki.chuidiang.org/index.p..._filtrar_filas )

Para decidir si son pocos o muchos, básicamente es que puedas traerlos a memoria todos sin peligro de quedarte sin ella, ten en cuenta que la máquina virtual tiene su propia memoria asignada que puedes cambiar si lo crees necesario.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 11/07/2014, 08:42
 
Fecha de Ingreso: enero-2005
Mensajes: 85
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Buscar en varios campos ¿Se puede hacer?¿Resultset?

chuidiang gracias por tu sugerencia, en tal caso voy a probar con la consulta pues el pc donde va a trabajar la aplicación esta escaso de recursos.

Un saludo
__________________
Videos Graciosos

Etiquetas: campos, 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 15:46.