[RESOLVIDO]Select com if

8 respostas
D

Boa noite.
Tava com problema no seguinte.
Preciso faze uma consuta no java, so que nem sempre vao manda informacoes para mim

Pensei em faze algo parecido com

ResultSet resultado = status.executeQuery ( "select * from usuario"+ if variavel >0 { "where codigo="+variavel} " );

Alguem tem alguma ideia de como faze?

8 Respostas

R

Faz o seguinte if:

String sql;
if (codigo ==null) {
   sql = "select * from usuario"
}
else{
 sql = "select * from usuario where codigo =?"
}

Ai depois você usa o ResultSet com o sql…

D

Bom entao nao tem como muda disso mesmo neh.
Pois no caso isso vai ser para 10 opcoes de pesquisa, entao se imagina um if com 10 variaveis de combinacoes, vai fica imenso

R

Expliquei uma alternativa para esse caso específico que você me disse.

Qual exatamente é a regra de negócio? O usuário poderá pesquisar por vários parâmetros (tipo codigo, nome, data, por ex)?

altitdb
String sql = "SELECT * FROM TABELA";

if(x == 0) {
    sql = sql.concat("WHERE X LIKE 'A'");
}else if (x == 1) {
    sql = sql.concat("WHERE Y LIKE 'A'");
}

Assim também seria uma maneira, mas como o rizller disse, depende da sua regra de negócio!

xD~~

pmlm
String sql = "SELECT some_columns FROM some_tables WHERE 1 = 1";

if (var1!= null && !"".equals(var1)){
    sql +=" AND a_column = VALUE";
}

if (var2!= null && !"".equals(var2)){
    sql +=" AND another_column = VALUE ";
    args.add(var2);
}
....
D
altitdb:
String sql = "SELECT * FROM TABELA";

if(x == 0) {
    sql = sql.concat("WHERE X LIKE 'A'");
}else if (x == 1) {
    sql = sql.concat("WHERE Y LIKE 'A'");
}

Assim também seria uma maneira, mas como o rizller disse, depende da sua regra de negócio!

xD~~

Cara, era isso mesmo. Vlew pela ajuda ae pessoal

altitdb

Qualquer coisa dá um grito ai!!

Não esquece do [RESOLVIDO] hehehe ^^

xD~~

D

opa, podexa

vlw

Criado 25 de janeiro de 2011
Ultima resposta 26 de jan. de 2011
Respostas 8
Participantes 4