Bem, não sei se esse é o título correto sobre o que eu preciso mas vamos lá.
Tenho uma aplicação desktop que a sua função é apenas realizar consultas em dois bancos de dados.
A consulta é feita, baseada em alguns filtros e apresentada em uma JTable.
As inctruções sql são criadas da seguinte forma:
Primeiro crio a primeira parte, com o select e o “join”:
SELECT a.nome, m.ra FROM aluno a, matricula m
WHERE a.ra = m.ra
A segunda parte é onde os filtros entram em ação, chamo um método obtendo a string contida num componente swing.
[code]
public static String obtemFiltros( String curso, String matriculaA, String matriculaAte) {
StrungBuffer sb = new StringBuffer();
// curso se encontra num combo, com os cursos ou a opção de todos
if ( !curso.equals( "TODOS" ) ) {
sb.append( "AND m.curso = " curso );
}
// as matriculas estão em um text field
if ( !matriculaA.equals( "" ) ) {
sb.append( "AND m.matricula >= " matriculaA );
}
if ( !matriculaAte.equals( "" ) ) {
sb.append( "AND m.matricula <= " matriculaAte );
}
return sb.toString();
}[/code]
E por fim na terceira parte eu finalizo a query se necessário usando um order by ou group by
ORDER BY a.nome
Ok, numa aplicação desktop isso não é uma tarefa tão complicada.
Só que estou convertendo essa aplicação desktop para web, e preciso fazer todas essas consultas (são mais de 50 diferentes) e quero fazer isso dentro de um JSP, passando os filtros através da tag sql:param. O problema é que quando um combo no meu form está em TODOS, eu uso LIKE para comparar uma string e passo %, até ai tudo bem, e quando um campo está vazio eu não sei o que fazer, e se for numérico como eu posso fazer com que a comparação m.matriculaA = valorDoCampo seja ignorada, ou seja, fazer com que qualquer m.matriculaA seja pesquisada.
Gostaria de saber o que fazer, não queria fazer um jsp para cada consulta e sim um genérico que passa todos os parametros do form de consulta e quando um campo estiver vazio, seja realiza uma consulta em tudo.
Espero que tenham entendido.
Aguardo resposta!