style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

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 ocurre

StringBuffer buffer = new StringBuffer( "SELECT * FROM BLA WHERE " );

if( 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 criteria = session.createCriteria( ElObjeto.class );  
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...

Imagen de WinDoctor

Como dice neko, StringBuffer

Como dice neko,

StringBuffer statement = new StringBuffer("SELECT ........................... WHERE ....................");
     
     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

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">