Multiples filtro para consultar registros
Hola que tal.
Esto desarrollando una aplicación sencilla ("era sencilla") jajaja,He llegado a un modulo de Consultas.
Aquí tengo varios combobox que los utilizare para filtrar.
Los filtros se aplican a una tabla de la BD llamada Ventas.
Dejo una imagen.
Pregunta. En un consulta se puede meter todos los filtros o tengo que usar varias consultas.dependiendo si hay o no datos nulos.
Creo que ni me explique por que no se como preguntar esto.
Va mas simple.
Se puede filtrar usando todas las combinaciones posibles de formulario que tengo, usando una sola consulta?
- Inicie sesión o regístrese para enviar comentarios
Por ejemplo, si trabajas con
Por ejemplo, si trabajas con JDBC o Spring JDBC, puedes crear un
StringBuffer o StringBuilder
que vaya completando fragmentos de consulta, en base a si los parámetros que envíes van nulos, se me ocurreif( param1 != null && param1.lenght() > 0 ) { //suponiendo que el parámetro fuera un String
buffer.append( "PROPIEDAD 1 = ?" )
}
// asi te vas con todas las propiedades completando el buffer, ya que tienes tu cadena construida, completas los parametros
...
...
if( param1 != null && param1.lenght() > 0 ) { //suponiendo que el parámetro fuera un String
preparedStatement.setString( 0 , param1)
}
En Hibernate, puedes ir acotando tu consulta en base a
Criteria
criteria.add( Restrictions.like("nombreDelCampo", "valor") )
criteria.add( Restrictions.between("nombreDeOtroCampo", valorMinimo, valorMaximo) )
criteria.setMaxResults(50); //que traiga un numero de registros determinado
List cats = criteria.list(); //te retorna una lista
Más o menos...
Como dice neko, StringBuffer
Como dice neko,
if (filtroComboBox.isSelected())
statement.append("nombre=?");
Y al final, al usar un PreparedStatement puedes setear los valores.
Problema Urgente
A quin pueda ayudarme por favor .... necesito realizar un metodo de busqueda a una base de datos desde java ... el caso es que tengo mas de un campo para realizar la busqueda (facultad,departamento, inventario y fecha) me gustaria realizar una busqueda a la base de datos y se mostrara en un jtable el resultado .... y que el metodo buscar me permita buscar por cualquier campo o combinación de ello independiente mente ..... por ejemplo :
Buscar por: Facultad y departamento ..... o buscar solo por rango de fecha ... o por facultad y rango de fecha ..... o buscar por inventario y rano de fecha ....
que esa posibilidad me la de el mismo metodo .... al ingresar los datos por los que quiero buscar ... el metodo segun esos datos realice la busqueda ...
por favor ... quien me pueda ayudar este es mi E-mail : erneston@cug.co.cu
si puden envienme la respuesta por ese correo ..
gracias de antemano ...
Hibernate by Example
Necesitas usar la clase Example de Hibernate aquí tienes mas información
http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/querycriteria....
https://dzone.com/articles/hibernate-query-example-qbe
No te recomiendo nada de lo que se deice arriba xD